diff --git a/generation_config.yaml b/generation_config.yaml index 1463b4e076..3f9563b278 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1,4 +1,4 @@ -googleapis_commitish: 5f6048b0222ddc57826fbbd254ea3197e2db82f3 +googleapis_commitish: 01aaf5a6b19bc674a65882392ed37f64976790a1 # the libraries are ordered with respect to library name, which is # java-{library.library_name} or java-{library.api-shortname} when # library.library_name is not defined. diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java index d6c715f9db..6f2797ece9 100644 --- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java +++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java @@ -65,7 +65,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\030google/api/backend.proto\022\n" + "google.api\"1\n" + "\007Backend\022&\n" - + "\005rules\030\001 \003(\0132\027.google.api.BackendRule\"\262\004\n" + + "\005rules\030\001 \003(\0132\027.google.api.BackendRule\"\321\004\n" + "\013BackendRule\022\020\n" + "\010selector\030\001 \001(\t\022\017\n" + "\007address\030\002 \001(\t\022\020\n" @@ -78,7 +78,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\014disable_auth\030\010 \001(\010H\000\022\020\n" + "\010protocol\030\t \001(\t\022^\n" + "\035overrides_by_request_protocol\030\n" - + " \003(\01327.google.api.BackendRule.OverridesByRequestProtocolEntry\032Z\n" + + " \003(\01327.google.api.BackendRule.OverridesByRequestProtocolEntry\022\035\n" + + "\025load_balancing_policy\030\013 \001(\t\032Z\n" + "\037OverridesByRequestProtocolEntry\022\013\n" + "\003key\030\001 \001(\t\022&\n" + "\005value\030\002 \001(\0132\027.google.api.BackendRule:\0028\001\"e\n" @@ -87,8 +88,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\020CONSTANT_ADDRESS\020\001\022\032\n" + "\026APPEND_PATH_TO_ADDRESS\020\002B\020\n" + "\016authenticationBn\n" - + "\016com.google.apiB\014BackendProtoP\001ZEgoogle.golang.org/genproto/goo" - + "gleapis/api/serviceconfig;serviceconfig\242\002\004GAPIb\006proto3" + + "\016com.google.apiB\014BackendProtoP\001ZEgoogle.golang.org/genproto/googleapis/a" + + "pi/serviceconfig;serviceconfig\242\002\004GAPIb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -115,6 +116,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "DisableAuth", "Protocol", "OverridesByRequestProtocol", + "LoadBalancingPolicy", "Authentication", }); internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_descriptor = diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java index f21406c92a..627149be5e 100644 --- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java +++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java @@ -56,6 +56,7 @@ private BackendRule() { address_ = ""; pathTranslation_ = 0; protocol_ = ""; + loadBalancingPolicy_ = ""; } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @@ -589,6 +590,15 @@ public double getOperationDeadline() { private int pathTranslation_ = 0; /** + * + * + *
+ * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return The enum numeric value on the wire for pathTranslation.
@@ -599,6 +609,15 @@ public int getPathTranslationValue() {
}
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return The pathTranslation.
@@ -941,6 +960,67 @@ public com.google.api.BackendRule getOverridesByRequestProtocolOrThrow(java.lang
return map.get(key);
}
+ public static final int LOAD_BALANCING_POLICY_FIELD_NUMBER = 11;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object loadBalancingPolicy_ = "";
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return The loadBalancingPolicy.
+ */
+ @java.lang.Override
+ public java.lang.String getLoadBalancingPolicy() {
+ java.lang.Object ref = loadBalancingPolicy_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ loadBalancingPolicy_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return The bytes for loadBalancingPolicy.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getLoadBalancingPolicyBytes() {
+ java.lang.Object ref = loadBalancingPolicy_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ loadBalancingPolicy_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -988,6 +1068,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
internalGetOverridesByRequestProtocol(),
OverridesByRequestProtocolDefaultEntryHolder.defaultEntry,
10);
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(loadBalancingPolicy_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 11, loadBalancingPolicy_);
+ }
getUnknownFields().writeTo(output);
}
@@ -1040,6 +1123,9 @@ public int getSerializedSize() {
com.google.protobuf.CodedOutputStream.computeMessageSize(
10, overridesByRequestProtocol__);
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(loadBalancingPolicy_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(11, loadBalancingPolicy_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -1067,6 +1153,7 @@ public boolean equals(final java.lang.Object obj) {
if (!getProtocol().equals(other.getProtocol())) return false;
if (!internalGetOverridesByRequestProtocol()
.equals(other.internalGetOverridesByRequestProtocol())) return false;
+ if (!getLoadBalancingPolicy().equals(other.getLoadBalancingPolicy())) return false;
if (!getAuthenticationCase().equals(other.getAuthenticationCase())) return false;
switch (authenticationCase_) {
case 7:
@@ -1116,6 +1203,8 @@ public int hashCode() {
hash = (37 * hash) + OVERRIDES_BY_REQUEST_PROTOCOL_FIELD_NUMBER;
hash = (53 * hash) + internalGetOverridesByRequestProtocol().hashCode();
}
+ hash = (37 * hash) + LOAD_BALANCING_POLICY_FIELD_NUMBER;
+ hash = (53 * hash) + getLoadBalancingPolicy().hashCode();
switch (authenticationCase_) {
case 7:
hash = (37 * hash) + JWT_AUDIENCE_FIELD_NUMBER;
@@ -1294,6 +1383,7 @@ public Builder clear() {
pathTranslation_ = 0;
protocol_ = "";
internalGetMutableOverridesByRequestProtocol().clear();
+ loadBalancingPolicy_ = "";
authenticationCase_ = 0;
authentication_ = null;
return this;
@@ -1357,6 +1447,9 @@ private void buildPartial0(com.google.api.BackendRule result) {
internalGetOverridesByRequestProtocol()
.build(OverridesByRequestProtocolDefaultEntryHolder.defaultEntry);
}
+ if (((from_bitField0_ & 0x00000400) != 0)) {
+ result.loadBalancingPolicy_ = loadBalancingPolicy_;
+ }
}
private void buildPartialOneofs(com.google.api.BackendRule result) {
@@ -1406,6 +1499,11 @@ public Builder mergeFrom(com.google.api.BackendRule other) {
internalGetMutableOverridesByRequestProtocol()
.mergeFrom(other.internalGetOverridesByRequestProtocol());
bitField0_ |= 0x00000200;
+ if (!other.getLoadBalancingPolicy().isEmpty()) {
+ loadBalancingPolicy_ = other.loadBalancingPolicy_;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ }
switch (other.getAuthenticationCase()) {
case JWT_AUDIENCE:
{
@@ -1521,6 +1619,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000200;
break;
} // case 82
+ case 90:
+ {
+ loadBalancingPolicy_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000400;
+ break;
+ } // case 90
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -2072,6 +2176,15 @@ public Builder clearOperationDeadline() {
private int pathTranslation_ = 0;
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return The enum numeric value on the wire for pathTranslation.
@@ -2082,6 +2195,15 @@ public int getPathTranslationValue() {
}
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @param value The enum numeric value on the wire for pathTranslation to set.
@@ -2095,6 +2217,15 @@ public Builder setPathTranslationValue(int value) {
}
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return The pathTranslation.
@@ -2107,6 +2238,15 @@ public com.google.api.BackendRule.PathTranslation getPathTranslation() {
}
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @param value The pathTranslation to set.
@@ -2123,6 +2263,15 @@ public Builder setPathTranslation(com.google.api.BackendRule.PathTranslation val
}
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return This builder for chaining.
@@ -2827,6 +2976,137 @@ public com.google.api.BackendRule.Builder putOverridesByRequestProtocolBuilderIf
return (com.google.api.BackendRule.Builder) entry;
}
+ private java.lang.Object loadBalancingPolicy_ = "";
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return The loadBalancingPolicy.
+ */
+ public java.lang.String getLoadBalancingPolicy() {
+ java.lang.Object ref = loadBalancingPolicy_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ loadBalancingPolicy_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return The bytes for loadBalancingPolicy.
+ */
+ public com.google.protobuf.ByteString getLoadBalancingPolicyBytes() {
+ java.lang.Object ref = loadBalancingPolicy_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ loadBalancingPolicy_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @param value The loadBalancingPolicy to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLoadBalancingPolicy(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ loadBalancingPolicy_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearLoadBalancingPolicy() {
+ loadBalancingPolicy_ = getDefaultInstance().getLoadBalancingPolicy();
+ bitField0_ = (bitField0_ & ~0x00000400);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @param value The bytes for loadBalancingPolicy to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLoadBalancingPolicyBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ loadBalancingPolicy_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.api.BackendRule)
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java
index 1adcf011da..6017784e63 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java
@@ -167,6 +167,15 @@ public interface BackendRuleOrBuilder
double getOperationDeadline();
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return The enum numeric value on the wire for pathTranslation.
@@ -174,6 +183,15 @@ public interface BackendRuleOrBuilder
int getPathTranslationValue();
/**
+ *
+ *
+ * + * Path translation specifies how to combine the backend address with the + * request path in order to produce the appropriate forwarding URL for the + * request. See [PathTranslation][google.api.BackendRule.PathTranslation] for + * more details. + *+ * *
.google.api.BackendRule.PathTranslation path_translation = 6;
*
* @return The pathTranslation.
@@ -386,5 +404,39 @@ com.google.api.BackendRule getOverridesByRequestProtocolOrDefault(
*/
com.google.api.BackendRule getOverridesByRequestProtocolOrThrow(java.lang.String key);
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return The loadBalancingPolicy.
+ */
+ java.lang.String getLoadBalancingPolicy();
+
+ /**
+ *
+ *
+ * + * The load balancing policy used for connection to the application backend. + * + * Defined as an arbitrary string to accomondate custom load balancing + * policies supported by the underlying channel, but suggest most users use + * one of the standard policies, such as the default, "RoundRobin". + *+ * + *
string load_balancing_policy = 11;
+ *
+ * @return The bytes for loadBalancingPolicy.
+ */
+ com.google.protobuf.ByteString getLoadBalancingPolicyBytes();
+
com.google.api.BackendRule.AuthenticationCase getAuthenticationCase();
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingConfigProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingConfigProto.java
new file mode 100644
index 0000000000..109cd1e0fe
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingConfigProto.java
@@ -0,0 +1,974 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/api/client.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.api;
+
+/**
+ *
+ *
+ * + * `BatchingConfigProto` defines the batching configuration for an API method. + *+ * + * Protobuf type {@code google.api.BatchingConfigProto} + */ +@com.google.protobuf.Generated +public final class BatchingConfigProto extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.api.BatchingConfigProto) + BatchingConfigProtoOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "BatchingConfigProto"); + } + + // Use BatchingConfigProto.newBuilder() to construct. + private BatchingConfigProto(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private BatchingConfigProto() {} + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.api.ClientProto.internal_static_google_api_BatchingConfigProto_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.api.ClientProto + .internal_static_google_api_BatchingConfigProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.api.BatchingConfigProto.class, + com.google.api.BatchingConfigProto.Builder.class); + } + + private int bitField0_; + public static final int THRESHOLDS_FIELD_NUMBER = 1; + private com.google.api.BatchingSettingsProto thresholds_; + + /** + * + * + *
+ * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ *
+ * @return Whether the thresholds field is set.
+ */
+ @java.lang.Override
+ public boolean hasThresholds() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ *
+ * @return The thresholds.
+ */
+ @java.lang.Override
+ public com.google.api.BatchingSettingsProto getThresholds() {
+ return thresholds_ == null
+ ? com.google.api.BatchingSettingsProto.getDefaultInstance()
+ : thresholds_;
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ @java.lang.Override
+ public com.google.api.BatchingSettingsProtoOrBuilder getThresholdsOrBuilder() {
+ return thresholds_ == null
+ ? com.google.api.BatchingSettingsProto.getDefaultInstance()
+ : thresholds_;
+ }
+
+ public static final int BATCH_DESCRIPTOR_FIELD_NUMBER = 2;
+ private com.google.api.BatchingDescriptorProto batchDescriptor_;
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ *
+ * @return Whether the batchDescriptor field is set.
+ */
+ @java.lang.Override
+ public boolean hasBatchDescriptor() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ *
+ * @return The batchDescriptor.
+ */
+ @java.lang.Override
+ public com.google.api.BatchingDescriptorProto getBatchDescriptor() {
+ return batchDescriptor_ == null
+ ? com.google.api.BatchingDescriptorProto.getDefaultInstance()
+ : batchDescriptor_;
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ @java.lang.Override
+ public com.google.api.BatchingDescriptorProtoOrBuilder getBatchDescriptorOrBuilder() {
+ return batchDescriptor_ == null
+ ? com.google.api.BatchingDescriptorProto.getDefaultInstance()
+ : batchDescriptor_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getThresholds());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(2, getBatchDescriptor());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getThresholds());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getBatchDescriptor());
+ }
+ 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.api.BatchingConfigProto)) {
+ return super.equals(obj);
+ }
+ com.google.api.BatchingConfigProto other = (com.google.api.BatchingConfigProto) obj;
+
+ if (hasThresholds() != other.hasThresholds()) return false;
+ if (hasThresholds()) {
+ if (!getThresholds().equals(other.getThresholds())) return false;
+ }
+ if (hasBatchDescriptor() != other.hasBatchDescriptor()) return false;
+ if (hasBatchDescriptor()) {
+ if (!getBatchDescriptor().equals(other.getBatchDescriptor())) 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 (hasThresholds()) {
+ hash = (37 * hash) + THRESHOLDS_FIELD_NUMBER;
+ hash = (53 * hash) + getThresholds().hashCode();
+ }
+ if (hasBatchDescriptor()) {
+ hash = (37 * hash) + BATCH_DESCRIPTOR_FIELD_NUMBER;
+ hash = (53 * hash) + getBatchDescriptor().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingConfigProto 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.api.BatchingConfigProto parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingConfigProto parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingConfigProto parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingConfigProto parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.api.BatchingConfigProto 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * `BatchingConfigProto` defines the batching configuration for an API method. + *+ * + * Protobuf type {@code google.api.BatchingConfigProto} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ *
+ * @return Whether the thresholds field is set.
+ */
+ public boolean hasThresholds() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ *
+ * @return The thresholds.
+ */
+ public com.google.api.BatchingSettingsProto getThresholds() {
+ if (thresholdsBuilder_ == null) {
+ return thresholds_ == null
+ ? com.google.api.BatchingSettingsProto.getDefaultInstance()
+ : thresholds_;
+ } else {
+ return thresholdsBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ public Builder setThresholds(com.google.api.BatchingSettingsProto value) {
+ if (thresholdsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ thresholds_ = value;
+ } else {
+ thresholdsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ public Builder setThresholds(com.google.api.BatchingSettingsProto.Builder builderForValue) {
+ if (thresholdsBuilder_ == null) {
+ thresholds_ = builderForValue.build();
+ } else {
+ thresholdsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ public Builder mergeThresholds(com.google.api.BatchingSettingsProto value) {
+ if (thresholdsBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && thresholds_ != null
+ && thresholds_ != com.google.api.BatchingSettingsProto.getDefaultInstance()) {
+ getThresholdsBuilder().mergeFrom(value);
+ } else {
+ thresholds_ = value;
+ }
+ } else {
+ thresholdsBuilder_.mergeFrom(value);
+ }
+ if (thresholds_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ public Builder clearThresholds() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ thresholds_ = null;
+ if (thresholdsBuilder_ != null) {
+ thresholdsBuilder_.dispose();
+ thresholdsBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ public com.google.api.BatchingSettingsProto.Builder getThresholdsBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return internalGetThresholdsFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ public com.google.api.BatchingSettingsProtoOrBuilder getThresholdsOrBuilder() {
+ if (thresholdsBuilder_ != null) {
+ return thresholdsBuilder_.getMessageOrBuilder();
+ } else {
+ return thresholds_ == null
+ ? com.google.api.BatchingSettingsProto.getDefaultInstance()
+ : thresholds_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingSettingsProto,
+ com.google.api.BatchingSettingsProto.Builder,
+ com.google.api.BatchingSettingsProtoOrBuilder>
+ internalGetThresholdsFieldBuilder() {
+ if (thresholdsBuilder_ == null) {
+ thresholdsBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingSettingsProto,
+ com.google.api.BatchingSettingsProto.Builder,
+ com.google.api.BatchingSettingsProtoOrBuilder>(
+ getThresholds(), getParentForChildren(), isClean());
+ thresholds_ = null;
+ }
+ return thresholdsBuilder_;
+ }
+
+ private com.google.api.BatchingDescriptorProto batchDescriptor_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingDescriptorProto,
+ com.google.api.BatchingDescriptorProto.Builder,
+ com.google.api.BatchingDescriptorProtoOrBuilder>
+ batchDescriptorBuilder_;
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ *
+ * @return Whether the batchDescriptor field is set.
+ */
+ public boolean hasBatchDescriptor() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ *
+ * @return The batchDescriptor.
+ */
+ public com.google.api.BatchingDescriptorProto getBatchDescriptor() {
+ if (batchDescriptorBuilder_ == null) {
+ return batchDescriptor_ == null
+ ? com.google.api.BatchingDescriptorProto.getDefaultInstance()
+ : batchDescriptor_;
+ } else {
+ return batchDescriptorBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ public Builder setBatchDescriptor(com.google.api.BatchingDescriptorProto value) {
+ if (batchDescriptorBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ batchDescriptor_ = value;
+ } else {
+ batchDescriptorBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ public Builder setBatchDescriptor(
+ com.google.api.BatchingDescriptorProto.Builder builderForValue) {
+ if (batchDescriptorBuilder_ == null) {
+ batchDescriptor_ = builderForValue.build();
+ } else {
+ batchDescriptorBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ public Builder mergeBatchDescriptor(com.google.api.BatchingDescriptorProto value) {
+ if (batchDescriptorBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && batchDescriptor_ != null
+ && batchDescriptor_ != com.google.api.BatchingDescriptorProto.getDefaultInstance()) {
+ getBatchDescriptorBuilder().mergeFrom(value);
+ } else {
+ batchDescriptor_ = value;
+ }
+ } else {
+ batchDescriptorBuilder_.mergeFrom(value);
+ }
+ if (batchDescriptor_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ public Builder clearBatchDescriptor() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ batchDescriptor_ = null;
+ if (batchDescriptorBuilder_ != null) {
+ batchDescriptorBuilder_.dispose();
+ batchDescriptorBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ public com.google.api.BatchingDescriptorProto.Builder getBatchDescriptorBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return internalGetBatchDescriptorFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ public com.google.api.BatchingDescriptorProtoOrBuilder getBatchDescriptorOrBuilder() {
+ if (batchDescriptorBuilder_ != null) {
+ return batchDescriptorBuilder_.getMessageOrBuilder();
+ } else {
+ return batchDescriptor_ == null
+ ? com.google.api.BatchingDescriptorProto.getDefaultInstance()
+ : batchDescriptor_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingDescriptorProto,
+ com.google.api.BatchingDescriptorProto.Builder,
+ com.google.api.BatchingDescriptorProtoOrBuilder>
+ internalGetBatchDescriptorFieldBuilder() {
+ if (batchDescriptorBuilder_ == null) {
+ batchDescriptorBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingDescriptorProto,
+ com.google.api.BatchingDescriptorProto.Builder,
+ com.google.api.BatchingDescriptorProtoOrBuilder>(
+ getBatchDescriptor(), getParentForChildren(), isClean());
+ batchDescriptor_ = null;
+ }
+ return batchDescriptorBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.api.BatchingConfigProto)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.api.BatchingConfigProto)
+ private static final com.google.api.BatchingConfigProto DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.api.BatchingConfigProto();
+ }
+
+ public static com.google.api.BatchingConfigProto getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ *
+ * @return Whether the thresholds field is set.
+ */
+ boolean hasThresholds();
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ *
+ * @return The thresholds.
+ */
+ com.google.api.BatchingSettingsProto getThresholds();
+
+ /**
+ *
+ *
+ * + * The thresholds which trigger a batched request to be sent. + *+ * + *
.google.api.BatchingSettingsProto thresholds = 1;
+ */
+ com.google.api.BatchingSettingsProtoOrBuilder getThresholdsOrBuilder();
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ *
+ * @return Whether the batchDescriptor field is set.
+ */
+ boolean hasBatchDescriptor();
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ *
+ * @return The batchDescriptor.
+ */
+ com.google.api.BatchingDescriptorProto getBatchDescriptor();
+
+ /**
+ *
+ *
+ * + * The request and response fields used in batching. + *+ * + *
.google.api.BatchingDescriptorProto batch_descriptor = 2;
+ */
+ com.google.api.BatchingDescriptorProtoOrBuilder getBatchDescriptorOrBuilder();
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingDescriptorProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingDescriptorProto.java
new file mode 100644
index 0000000000..103fc198ef
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingDescriptorProto.java
@@ -0,0 +1,1123 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/api/client.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.api;
+
+/**
+ *
+ *
+ * + * `BatchingDescriptorProto` specifies the fields of the request message to be + * used for batching, and, optionally, the fields of the response message to be + * used for demultiplexing. + *+ * + * Protobuf type {@code google.api.BatchingDescriptorProto} + */ +@com.google.protobuf.Generated +public final class BatchingDescriptorProto extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.api.BatchingDescriptorProto) + BatchingDescriptorProtoOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "BatchingDescriptorProto"); + } + + // Use BatchingDescriptorProto.newBuilder() to construct. + private BatchingDescriptorProto(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private BatchingDescriptorProto() { + batchedField_ = ""; + discriminatorFields_ = com.google.protobuf.LazyStringArrayList.emptyList(); + subresponseField_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.api.ClientProto.internal_static_google_api_BatchingDescriptorProto_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.api.ClientProto + .internal_static_google_api_BatchingDescriptorProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.api.BatchingDescriptorProto.class, + com.google.api.BatchingDescriptorProto.Builder.class); + } + + public static final int BATCHED_FIELD_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object batchedField_ = ""; + + /** + * + * + *
+ * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return The batchedField.
+ */
+ @java.lang.Override
+ public java.lang.String getBatchedField() {
+ java.lang.Object ref = batchedField_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ batchedField_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return The bytes for batchedField.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getBatchedFieldBytes() {
+ java.lang.Object ref = batchedField_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ batchedField_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DISCRIMINATOR_FIELDS_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList discriminatorFields_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return A list containing the discriminatorFields.
+ */
+ public com.google.protobuf.ProtocolStringList getDiscriminatorFieldsList() {
+ return discriminatorFields_;
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return The count of discriminatorFields.
+ */
+ public int getDiscriminatorFieldsCount() {
+ return discriminatorFields_.size();
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index of the element to return.
+ * @return The discriminatorFields at the given index.
+ */
+ public java.lang.String getDiscriminatorFields(int index) {
+ return discriminatorFields_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the discriminatorFields at the given index.
+ */
+ public com.google.protobuf.ByteString getDiscriminatorFieldsBytes(int index) {
+ return discriminatorFields_.getByteString(index);
+ }
+
+ public static final int SUBRESPONSE_FIELD_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object subresponseField_ = "";
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return The subresponseField.
+ */
+ @java.lang.Override
+ public java.lang.String getSubresponseField() {
+ java.lang.Object ref = subresponseField_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ subresponseField_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return The bytes for subresponseField.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getSubresponseFieldBytes() {
+ java.lang.Object ref = subresponseField_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ subresponseField_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(batchedField_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, batchedField_);
+ }
+ for (int i = 0; i < discriminatorFields_.size(); i++) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, discriminatorFields_.getRaw(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(subresponseField_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, subresponseField_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(batchedField_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, batchedField_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < discriminatorFields_.size(); i++) {
+ dataSize += computeStringSizeNoTag(discriminatorFields_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getDiscriminatorFieldsList().size();
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(subresponseField_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, subresponseField_);
+ }
+ 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.api.BatchingDescriptorProto)) {
+ return super.equals(obj);
+ }
+ com.google.api.BatchingDescriptorProto other = (com.google.api.BatchingDescriptorProto) obj;
+
+ if (!getBatchedField().equals(other.getBatchedField())) return false;
+ if (!getDiscriminatorFieldsList().equals(other.getDiscriminatorFieldsList())) return false;
+ if (!getSubresponseField().equals(other.getSubresponseField())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + BATCHED_FIELD_FIELD_NUMBER;
+ hash = (53 * hash) + getBatchedField().hashCode();
+ if (getDiscriminatorFieldsCount() > 0) {
+ hash = (37 * hash) + DISCRIMINATOR_FIELDS_FIELD_NUMBER;
+ hash = (53 * hash) + getDiscriminatorFieldsList().hashCode();
+ }
+ hash = (37 * hash) + SUBRESPONSE_FIELD_FIELD_NUMBER;
+ hash = (53 * hash) + getSubresponseField().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingDescriptorProto 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.api.BatchingDescriptorProto parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingDescriptorProto parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.api.BatchingDescriptorProto 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * `BatchingDescriptorProto` specifies the fields of the request message to be + * used for batching, and, optionally, the fields of the response message to be + * used for demultiplexing. + *+ * + * Protobuf type {@code google.api.BatchingDescriptorProto} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return The batchedField.
+ */
+ public java.lang.String getBatchedField() {
+ java.lang.Object ref = batchedField_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ batchedField_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return The bytes for batchedField.
+ */
+ public com.google.protobuf.ByteString getBatchedFieldBytes() {
+ java.lang.Object ref = batchedField_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ batchedField_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @param value The batchedField to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBatchedField(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ batchedField_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearBatchedField() {
+ batchedField_ = getDefaultInstance().getBatchedField();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @param value The bytes for batchedField to set.
+ * @return This builder for chaining.
+ */
+ public Builder setBatchedFieldBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ batchedField_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList discriminatorFields_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureDiscriminatorFieldsIsMutable() {
+ if (!discriminatorFields_.isModifiable()) {
+ discriminatorFields_ = new com.google.protobuf.LazyStringArrayList(discriminatorFields_);
+ }
+ bitField0_ |= 0x00000002;
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return A list containing the discriminatorFields.
+ */
+ public com.google.protobuf.ProtocolStringList getDiscriminatorFieldsList() {
+ discriminatorFields_.makeImmutable();
+ return discriminatorFields_;
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return The count of discriminatorFields.
+ */
+ public int getDiscriminatorFieldsCount() {
+ return discriminatorFields_.size();
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index of the element to return.
+ * @return The discriminatorFields at the given index.
+ */
+ public java.lang.String getDiscriminatorFields(int index) {
+ return discriminatorFields_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the discriminatorFields at the given index.
+ */
+ public com.google.protobuf.ByteString getDiscriminatorFieldsBytes(int index) {
+ return discriminatorFields_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index to set the value at.
+ * @param value The discriminatorFields to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDiscriminatorFields(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureDiscriminatorFieldsIsMutable();
+ discriminatorFields_.set(index, value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param value The discriminatorFields to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDiscriminatorFields(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureDiscriminatorFieldsIsMutable();
+ discriminatorFields_.add(value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param values The discriminatorFields to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllDiscriminatorFields(java.lang.Iterable+ * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDiscriminatorFields() {
+ discriminatorFields_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param value The bytes of the discriminatorFields to add.
+ * @return This builder for chaining.
+ */
+ public Builder addDiscriminatorFieldsBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureDiscriminatorFieldsIsMutable();
+ discriminatorFields_.add(value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object subresponseField_ = "";
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return The subresponseField.
+ */
+ public java.lang.String getSubresponseField() {
+ java.lang.Object ref = subresponseField_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ subresponseField_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return The bytes for subresponseField.
+ */
+ public com.google.protobuf.ByteString getSubresponseFieldBytes() {
+ java.lang.Object ref = subresponseField_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ subresponseField_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @param value The subresponseField to set.
+ * @return This builder for chaining.
+ */
+ public Builder setSubresponseField(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ subresponseField_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearSubresponseField() {
+ subresponseField_ = getDefaultInstance().getSubresponseField();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @param value The bytes for subresponseField to set.
+ * @return This builder for chaining.
+ */
+ public Builder setSubresponseFieldBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ subresponseField_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.api.BatchingDescriptorProto)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.api.BatchingDescriptorProto)
+ private static final com.google.api.BatchingDescriptorProto DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.api.BatchingDescriptorProto();
+ }
+
+ public static com.google.api.BatchingDescriptorProto getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return The batchedField.
+ */
+ java.lang.String getBatchedField();
+
+ /**
+ *
+ *
+ * + * The repeated field in the request message to be aggregated by batching. + *+ * + *
string batched_field = 1;
+ *
+ * @return The bytes for batchedField.
+ */
+ com.google.protobuf.ByteString getBatchedFieldBytes();
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return A list containing the discriminatorFields.
+ */
+ java.util.List+ * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @return The count of discriminatorFields.
+ */
+ int getDiscriminatorFieldsCount();
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index of the element to return.
+ * @return The discriminatorFields at the given index.
+ */
+ java.lang.String getDiscriminatorFields(int index);
+
+ /**
+ *
+ *
+ * + * A list of the fields in the request message. Two requests will be batched + * together only if the values of every field specified in + * `request_discriminator_fields` is equal between the two requests. + *+ * + *
repeated string discriminator_fields = 2;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the discriminatorFields at the given index.
+ */
+ com.google.protobuf.ByteString getDiscriminatorFieldsBytes(int index);
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return The subresponseField.
+ */
+ java.lang.String getSubresponseField();
+
+ /**
+ *
+ *
+ * + * Optional. When present, indicates the field in the response message to be + * used to demultiplex the response into multiple response messages, in + * correspondence with the multiple request messages originally batched + * together. + *+ * + *
string subresponse_field = 3;
+ *
+ * @return The bytes for subresponseField.
+ */
+ com.google.protobuf.ByteString getSubresponseFieldBytes();
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingSettingsProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingSettingsProto.java
new file mode 100644
index 0000000000..02a3cd17a9
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BatchingSettingsProto.java
@@ -0,0 +1,1489 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/api/client.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.api;
+
+/**
+ *
+ *
+ * + * `BatchingSettingsProto` specifies a set of batching thresholds, each of + * which acts as a trigger to send a batch of messages as a request. At least + * one threshold must be positive nonzero. + *+ * + * Protobuf type {@code google.api.BatchingSettingsProto} + */ +@com.google.protobuf.Generated +public final class BatchingSettingsProto extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.api.BatchingSettingsProto) + BatchingSettingsProtoOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "BatchingSettingsProto"); + } + + // Use BatchingSettingsProto.newBuilder() to construct. + private BatchingSettingsProto(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private BatchingSettingsProto() { + flowControlLimitExceededBehavior_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.api.ClientProto.internal_static_google_api_BatchingSettingsProto_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.api.ClientProto + .internal_static_google_api_BatchingSettingsProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.api.BatchingSettingsProto.class, + com.google.api.BatchingSettingsProto.Builder.class); + } + + private int bitField0_; + public static final int ELEMENT_COUNT_THRESHOLD_FIELD_NUMBER = 1; + private int elementCountThreshold_ = 0; + + /** + * + * + *
+ * The number of elements of a field collected into a batch which, if + * exceeded, causes the batch to be sent. + *+ * + *
int32 element_count_threshold = 1;
+ *
+ * @return The elementCountThreshold.
+ */
+ @java.lang.Override
+ public int getElementCountThreshold() {
+ return elementCountThreshold_;
+ }
+
+ public static final int REQUEST_BYTE_THRESHOLD_FIELD_NUMBER = 2;
+ private long requestByteThreshold_ = 0L;
+
+ /**
+ *
+ *
+ * + * The aggregated size of the batched field which, if exceeded, causes the + * batch to be sent. This size is computed by aggregating the sizes of the + * request field to be batched, not of the entire request message. + *+ * + *
int64 request_byte_threshold = 2;
+ *
+ * @return The requestByteThreshold.
+ */
+ @java.lang.Override
+ public long getRequestByteThreshold() {
+ return requestByteThreshold_;
+ }
+
+ public static final int DELAY_THRESHOLD_FIELD_NUMBER = 3;
+ private com.google.protobuf.Duration delayThreshold_;
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ *
+ * @return Whether the delayThreshold field is set.
+ */
+ @java.lang.Override
+ public boolean hasDelayThreshold() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ *
+ * @return The delayThreshold.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Duration getDelayThreshold() {
+ return delayThreshold_ == null
+ ? com.google.protobuf.Duration.getDefaultInstance()
+ : delayThreshold_;
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ @java.lang.Override
+ public com.google.protobuf.DurationOrBuilder getDelayThresholdOrBuilder() {
+ return delayThreshold_ == null
+ ? com.google.protobuf.Duration.getDefaultInstance()
+ : delayThreshold_;
+ }
+
+ public static final int ELEMENT_COUNT_LIMIT_FIELD_NUMBER = 4;
+ private int elementCountLimit_ = 0;
+
+ /**
+ *
+ *
+ * + * The maximum number of elements collected in a batch that could be accepted + * by server. + *+ * + *
int32 element_count_limit = 4;
+ *
+ * @return The elementCountLimit.
+ */
+ @java.lang.Override
+ public int getElementCountLimit() {
+ return elementCountLimit_;
+ }
+
+ public static final int REQUEST_BYTE_LIMIT_FIELD_NUMBER = 5;
+ private int requestByteLimit_ = 0;
+
+ /**
+ *
+ *
+ * + * The maximum size of the request that could be accepted by server. + *+ * + *
int32 request_byte_limit = 5;
+ *
+ * @return The requestByteLimit.
+ */
+ @java.lang.Override
+ public int getRequestByteLimit() {
+ return requestByteLimit_;
+ }
+
+ public static final int FLOW_CONTROL_ELEMENT_LIMIT_FIELD_NUMBER = 6;
+ private int flowControlElementLimit_ = 0;
+
+ /**
+ *
+ *
+ * + * The maximum number of elements allowed by flow control. + *+ * + *
int32 flow_control_element_limit = 6;
+ *
+ * @return The flowControlElementLimit.
+ */
+ @java.lang.Override
+ public int getFlowControlElementLimit() {
+ return flowControlElementLimit_;
+ }
+
+ public static final int FLOW_CONTROL_BYTE_LIMIT_FIELD_NUMBER = 7;
+ private int flowControlByteLimit_ = 0;
+
+ /**
+ *
+ *
+ * + * The maximum size of data allowed by flow control. + *+ * + *
int32 flow_control_byte_limit = 7;
+ *
+ * @return The flowControlByteLimit.
+ */
+ @java.lang.Override
+ public int getFlowControlByteLimit() {
+ return flowControlByteLimit_;
+ }
+
+ public static final int FLOW_CONTROL_LIMIT_EXCEEDED_BEHAVIOR_FIELD_NUMBER = 8;
+ private int flowControlLimitExceededBehavior_ = 0;
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return The enum numeric value on the wire for flowControlLimitExceededBehavior.
+ */
+ @java.lang.Override
+ public int getFlowControlLimitExceededBehaviorValue() {
+ return flowControlLimitExceededBehavior_;
+ }
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return The flowControlLimitExceededBehavior.
+ */
+ @java.lang.Override
+ public com.google.api.FlowControlLimitExceededBehaviorProto
+ getFlowControlLimitExceededBehavior() {
+ com.google.api.FlowControlLimitExceededBehaviorProto result =
+ com.google.api.FlowControlLimitExceededBehaviorProto.forNumber(
+ flowControlLimitExceededBehavior_);
+ return result == null
+ ? com.google.api.FlowControlLimitExceededBehaviorProto.UNRECOGNIZED
+ : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (elementCountThreshold_ != 0) {
+ output.writeInt32(1, elementCountThreshold_);
+ }
+ if (requestByteThreshold_ != 0L) {
+ output.writeInt64(2, requestByteThreshold_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(3, getDelayThreshold());
+ }
+ if (elementCountLimit_ != 0) {
+ output.writeInt32(4, elementCountLimit_);
+ }
+ if (requestByteLimit_ != 0) {
+ output.writeInt32(5, requestByteLimit_);
+ }
+ if (flowControlElementLimit_ != 0) {
+ output.writeInt32(6, flowControlElementLimit_);
+ }
+ if (flowControlByteLimit_ != 0) {
+ output.writeInt32(7, flowControlByteLimit_);
+ }
+ if (flowControlLimitExceededBehavior_
+ != com.google.api.FlowControlLimitExceededBehaviorProto.UNSET_BEHAVIOR.getNumber()) {
+ output.writeEnum(8, flowControlLimitExceededBehavior_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (elementCountThreshold_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, elementCountThreshold_);
+ }
+ if (requestByteThreshold_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(2, requestByteThreshold_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getDelayThreshold());
+ }
+ if (elementCountLimit_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, elementCountLimit_);
+ }
+ if (requestByteLimit_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, requestByteLimit_);
+ }
+ if (flowControlElementLimit_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(6, flowControlElementLimit_);
+ }
+ if (flowControlByteLimit_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(7, flowControlByteLimit_);
+ }
+ if (flowControlLimitExceededBehavior_
+ != com.google.api.FlowControlLimitExceededBehaviorProto.UNSET_BEHAVIOR.getNumber()) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeEnumSize(
+ 8, flowControlLimitExceededBehavior_);
+ }
+ 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.api.BatchingSettingsProto)) {
+ return super.equals(obj);
+ }
+ com.google.api.BatchingSettingsProto other = (com.google.api.BatchingSettingsProto) obj;
+
+ if (getElementCountThreshold() != other.getElementCountThreshold()) return false;
+ if (getRequestByteThreshold() != other.getRequestByteThreshold()) return false;
+ if (hasDelayThreshold() != other.hasDelayThreshold()) return false;
+ if (hasDelayThreshold()) {
+ if (!getDelayThreshold().equals(other.getDelayThreshold())) return false;
+ }
+ if (getElementCountLimit() != other.getElementCountLimit()) return false;
+ if (getRequestByteLimit() != other.getRequestByteLimit()) return false;
+ if (getFlowControlElementLimit() != other.getFlowControlElementLimit()) return false;
+ if (getFlowControlByteLimit() != other.getFlowControlByteLimit()) return false;
+ if (flowControlLimitExceededBehavior_ != other.flowControlLimitExceededBehavior_) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ELEMENT_COUNT_THRESHOLD_FIELD_NUMBER;
+ hash = (53 * hash) + getElementCountThreshold();
+ hash = (37 * hash) + REQUEST_BYTE_THRESHOLD_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRequestByteThreshold());
+ if (hasDelayThreshold()) {
+ hash = (37 * hash) + DELAY_THRESHOLD_FIELD_NUMBER;
+ hash = (53 * hash) + getDelayThreshold().hashCode();
+ }
+ hash = (37 * hash) + ELEMENT_COUNT_LIMIT_FIELD_NUMBER;
+ hash = (53 * hash) + getElementCountLimit();
+ hash = (37 * hash) + REQUEST_BYTE_LIMIT_FIELD_NUMBER;
+ hash = (53 * hash) + getRequestByteLimit();
+ hash = (37 * hash) + FLOW_CONTROL_ELEMENT_LIMIT_FIELD_NUMBER;
+ hash = (53 * hash) + getFlowControlElementLimit();
+ hash = (37 * hash) + FLOW_CONTROL_BYTE_LIMIT_FIELD_NUMBER;
+ hash = (53 * hash) + getFlowControlByteLimit();
+ hash = (37 * hash) + FLOW_CONTROL_LIMIT_EXCEEDED_BEHAVIOR_FIELD_NUMBER;
+ hash = (53 * hash) + flowControlLimitExceededBehavior_;
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingSettingsProto 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.api.BatchingSettingsProto parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.api.BatchingSettingsProto parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.api.BatchingSettingsProto 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * `BatchingSettingsProto` specifies a set of batching thresholds, each of + * which acts as a trigger to send a batch of messages as a request. At least + * one threshold must be positive nonzero. + *+ * + * Protobuf type {@code google.api.BatchingSettingsProto} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * The number of elements of a field collected into a batch which, if + * exceeded, causes the batch to be sent. + *+ * + *
int32 element_count_threshold = 1;
+ *
+ * @return The elementCountThreshold.
+ */
+ @java.lang.Override
+ public int getElementCountThreshold() {
+ return elementCountThreshold_;
+ }
+
+ /**
+ *
+ *
+ * + * The number of elements of a field collected into a batch which, if + * exceeded, causes the batch to be sent. + *+ * + *
int32 element_count_threshold = 1;
+ *
+ * @param value The elementCountThreshold to set.
+ * @return This builder for chaining.
+ */
+ public Builder setElementCountThreshold(int value) {
+
+ elementCountThreshold_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The number of elements of a field collected into a batch which, if + * exceeded, causes the batch to be sent. + *+ * + *
int32 element_count_threshold = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearElementCountThreshold() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ elementCountThreshold_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long requestByteThreshold_;
+
+ /**
+ *
+ *
+ * + * The aggregated size of the batched field which, if exceeded, causes the + * batch to be sent. This size is computed by aggregating the sizes of the + * request field to be batched, not of the entire request message. + *+ * + *
int64 request_byte_threshold = 2;
+ *
+ * @return The requestByteThreshold.
+ */
+ @java.lang.Override
+ public long getRequestByteThreshold() {
+ return requestByteThreshold_;
+ }
+
+ /**
+ *
+ *
+ * + * The aggregated size of the batched field which, if exceeded, causes the + * batch to be sent. This size is computed by aggregating the sizes of the + * request field to be batched, not of the entire request message. + *+ * + *
int64 request_byte_threshold = 2;
+ *
+ * @param value The requestByteThreshold to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRequestByteThreshold(long value) {
+
+ requestByteThreshold_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The aggregated size of the batched field which, if exceeded, causes the + * batch to be sent. This size is computed by aggregating the sizes of the + * request field to be batched, not of the entire request message. + *+ * + *
int64 request_byte_threshold = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRequestByteThreshold() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ requestByteThreshold_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.Duration delayThreshold_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Duration,
+ com.google.protobuf.Duration.Builder,
+ com.google.protobuf.DurationOrBuilder>
+ delayThresholdBuilder_;
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ *
+ * @return Whether the delayThreshold field is set.
+ */
+ public boolean hasDelayThreshold() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ *
+ * @return The delayThreshold.
+ */
+ public com.google.protobuf.Duration getDelayThreshold() {
+ if (delayThresholdBuilder_ == null) {
+ return delayThreshold_ == null
+ ? com.google.protobuf.Duration.getDefaultInstance()
+ : delayThreshold_;
+ } else {
+ return delayThresholdBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ public Builder setDelayThreshold(com.google.protobuf.Duration value) {
+ if (delayThresholdBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ delayThreshold_ = value;
+ } else {
+ delayThresholdBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ public Builder setDelayThreshold(com.google.protobuf.Duration.Builder builderForValue) {
+ if (delayThresholdBuilder_ == null) {
+ delayThreshold_ = builderForValue.build();
+ } else {
+ delayThresholdBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ public Builder mergeDelayThreshold(com.google.protobuf.Duration value) {
+ if (delayThresholdBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) != 0)
+ && delayThreshold_ != null
+ && delayThreshold_ != com.google.protobuf.Duration.getDefaultInstance()) {
+ getDelayThresholdBuilder().mergeFrom(value);
+ } else {
+ delayThreshold_ = value;
+ }
+ } else {
+ delayThresholdBuilder_.mergeFrom(value);
+ }
+ if (delayThreshold_ != null) {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ public Builder clearDelayThreshold() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ delayThreshold_ = null;
+ if (delayThresholdBuilder_ != null) {
+ delayThresholdBuilder_.dispose();
+ delayThresholdBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ public com.google.protobuf.Duration.Builder getDelayThresholdBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return internalGetDelayThresholdFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ public com.google.protobuf.DurationOrBuilder getDelayThresholdOrBuilder() {
+ if (delayThresholdBuilder_ != null) {
+ return delayThresholdBuilder_.getMessageOrBuilder();
+ } else {
+ return delayThreshold_ == null
+ ? com.google.protobuf.Duration.getDefaultInstance()
+ : delayThreshold_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Duration,
+ com.google.protobuf.Duration.Builder,
+ com.google.protobuf.DurationOrBuilder>
+ internalGetDelayThresholdFieldBuilder() {
+ if (delayThresholdBuilder_ == null) {
+ delayThresholdBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Duration,
+ com.google.protobuf.Duration.Builder,
+ com.google.protobuf.DurationOrBuilder>(
+ getDelayThreshold(), getParentForChildren(), isClean());
+ delayThreshold_ = null;
+ }
+ return delayThresholdBuilder_;
+ }
+
+ private int elementCountLimit_;
+
+ /**
+ *
+ *
+ * + * The maximum number of elements collected in a batch that could be accepted + * by server. + *+ * + *
int32 element_count_limit = 4;
+ *
+ * @return The elementCountLimit.
+ */
+ @java.lang.Override
+ public int getElementCountLimit() {
+ return elementCountLimit_;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum number of elements collected in a batch that could be accepted + * by server. + *+ * + *
int32 element_count_limit = 4;
+ *
+ * @param value The elementCountLimit to set.
+ * @return This builder for chaining.
+ */
+ public Builder setElementCountLimit(int value) {
+
+ elementCountLimit_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum number of elements collected in a batch that could be accepted + * by server. + *+ * + *
int32 element_count_limit = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearElementCountLimit() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ elementCountLimit_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int requestByteLimit_;
+
+ /**
+ *
+ *
+ * + * The maximum size of the request that could be accepted by server. + *+ * + *
int32 request_byte_limit = 5;
+ *
+ * @return The requestByteLimit.
+ */
+ @java.lang.Override
+ public int getRequestByteLimit() {
+ return requestByteLimit_;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum size of the request that could be accepted by server. + *+ * + *
int32 request_byte_limit = 5;
+ *
+ * @param value The requestByteLimit to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRequestByteLimit(int value) {
+
+ requestByteLimit_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum size of the request that could be accepted by server. + *+ * + *
int32 request_byte_limit = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRequestByteLimit() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ requestByteLimit_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int flowControlElementLimit_;
+
+ /**
+ *
+ *
+ * + * The maximum number of elements allowed by flow control. + *+ * + *
int32 flow_control_element_limit = 6;
+ *
+ * @return The flowControlElementLimit.
+ */
+ @java.lang.Override
+ public int getFlowControlElementLimit() {
+ return flowControlElementLimit_;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum number of elements allowed by flow control. + *+ * + *
int32 flow_control_element_limit = 6;
+ *
+ * @param value The flowControlElementLimit to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFlowControlElementLimit(int value) {
+
+ flowControlElementLimit_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum number of elements allowed by flow control. + *+ * + *
int32 flow_control_element_limit = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearFlowControlElementLimit() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ flowControlElementLimit_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int flowControlByteLimit_;
+
+ /**
+ *
+ *
+ * + * The maximum size of data allowed by flow control. + *+ * + *
int32 flow_control_byte_limit = 7;
+ *
+ * @return The flowControlByteLimit.
+ */
+ @java.lang.Override
+ public int getFlowControlByteLimit() {
+ return flowControlByteLimit_;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum size of data allowed by flow control. + *+ * + *
int32 flow_control_byte_limit = 7;
+ *
+ * @param value The flowControlByteLimit to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFlowControlByteLimit(int value) {
+
+ flowControlByteLimit_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The maximum size of data allowed by flow control. + *+ * + *
int32 flow_control_byte_limit = 7;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearFlowControlByteLimit() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ flowControlByteLimit_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int flowControlLimitExceededBehavior_ = 0;
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return The enum numeric value on the wire for flowControlLimitExceededBehavior.
+ */
+ @java.lang.Override
+ public int getFlowControlLimitExceededBehaviorValue() {
+ return flowControlLimitExceededBehavior_;
+ }
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @param value The enum numeric value on the wire for flowControlLimitExceededBehavior to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFlowControlLimitExceededBehaviorValue(int value) {
+ flowControlLimitExceededBehavior_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return The flowControlLimitExceededBehavior.
+ */
+ @java.lang.Override
+ public com.google.api.FlowControlLimitExceededBehaviorProto
+ getFlowControlLimitExceededBehavior() {
+ com.google.api.FlowControlLimitExceededBehaviorProto result =
+ com.google.api.FlowControlLimitExceededBehaviorProto.forNumber(
+ flowControlLimitExceededBehavior_);
+ return result == null
+ ? com.google.api.FlowControlLimitExceededBehaviorProto.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @param value The flowControlLimitExceededBehavior to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFlowControlLimitExceededBehavior(
+ com.google.api.FlowControlLimitExceededBehaviorProto value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000080;
+ flowControlLimitExceededBehavior_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearFlowControlLimitExceededBehavior() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ flowControlLimitExceededBehavior_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.api.BatchingSettingsProto)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.api.BatchingSettingsProto)
+ private static final com.google.api.BatchingSettingsProto DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.api.BatchingSettingsProto();
+ }
+
+ public static com.google.api.BatchingSettingsProto getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * The number of elements of a field collected into a batch which, if + * exceeded, causes the batch to be sent. + *+ * + *
int32 element_count_threshold = 1;
+ *
+ * @return The elementCountThreshold.
+ */
+ int getElementCountThreshold();
+
+ /**
+ *
+ *
+ * + * The aggregated size of the batched field which, if exceeded, causes the + * batch to be sent. This size is computed by aggregating the sizes of the + * request field to be batched, not of the entire request message. + *+ * + *
int64 request_byte_threshold = 2;
+ *
+ * @return The requestByteThreshold.
+ */
+ long getRequestByteThreshold();
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ *
+ * @return Whether the delayThreshold field is set.
+ */
+ boolean hasDelayThreshold();
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ *
+ * @return The delayThreshold.
+ */
+ com.google.protobuf.Duration getDelayThreshold();
+
+ /**
+ *
+ *
+ * + * The duration after which a batch should be sent, starting from the addition + * of the first message to that batch. + *+ * + *
.google.protobuf.Duration delay_threshold = 3;
+ */
+ com.google.protobuf.DurationOrBuilder getDelayThresholdOrBuilder();
+
+ /**
+ *
+ *
+ * + * The maximum number of elements collected in a batch that could be accepted + * by server. + *+ * + *
int32 element_count_limit = 4;
+ *
+ * @return The elementCountLimit.
+ */
+ int getElementCountLimit();
+
+ /**
+ *
+ *
+ * + * The maximum size of the request that could be accepted by server. + *+ * + *
int32 request_byte_limit = 5;
+ *
+ * @return The requestByteLimit.
+ */
+ int getRequestByteLimit();
+
+ /**
+ *
+ *
+ * + * The maximum number of elements allowed by flow control. + *+ * + *
int32 flow_control_element_limit = 6;
+ *
+ * @return The flowControlElementLimit.
+ */
+ int getFlowControlElementLimit();
+
+ /**
+ *
+ *
+ * + * The maximum size of data allowed by flow control. + *+ * + *
int32 flow_control_byte_limit = 7;
+ *
+ * @return The flowControlByteLimit.
+ */
+ int getFlowControlByteLimit();
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return The enum numeric value on the wire for flowControlLimitExceededBehavior.
+ */
+ int getFlowControlLimitExceededBehaviorValue();
+
+ /**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + *
+ * .google.api.FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior = 8;
+ *
+ *
+ * @return The flowControlLimitExceededBehavior.
+ */
+ com.google.api.FlowControlLimitExceededBehaviorProto getFlowControlLimitExceededBehavior();
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java
index 47e1f26ea3..2dc623eeed 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java
@@ -263,6 +263,18 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_api_SelectiveGapicGeneration_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_api_SelectiveGapicGeneration_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_api_BatchingConfigProto_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_api_BatchingConfigProto_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_api_BatchingSettingsProto_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_api_BatchingSettingsProto_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_api_BatchingDescriptorProto_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_api_BatchingDescriptorProto_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
return descriptor;
@@ -314,13 +326,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\003key\030\001 \001(\t\022\r\n"
+ "\005value\030\002 \001(\t:\0028\001\"A\n"
+ "\013CppSettings\0222\n"
- + "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\"A\n"
+ + "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\"Z\n"
+ "\013PhpSettings\0222\n"
- + "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\"\233\002\n"
+ + "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\022\027\n"
+ + "\017library_package\030\002 \001(\t\"\233\002\n"
+ "\016PythonSettings\0222\n"
+ "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\022N\n"
- + "\025experimental_features\030\002"
- + " \001(\0132/.google.api.PythonSettings.ExperimentalFeatures\032\204\001\n"
+ + "\025experimental_features\030\002 \001(\0132/.go"
+ + "ogle.api.PythonSettings.ExperimentalFeatures\032\204\001\n"
+ "\024ExperimentalFeatures\022\035\n"
+ "\025rest_async_io_enabled\030\001 \001(\010\022\'\n"
+ "\037protobuf_pythonic_types_enabled\030\002 \001(\010\022$\n"
@@ -329,10 +342,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\"\252\003\n"
+ "\016DotnetSettings\0222\n"
+ "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\022I\n"
- + "\020renamed_services\030\002 \003(\0132"
- + "/.google.api.DotnetSettings.RenamedServicesEntry\022K\n"
- + "\021renamed_resources\030\003 \003(\01320.go"
- + "ogle.api.DotnetSettings.RenamedResourcesEntry\022\031\n"
+ + "\020renamed_services\030\002"
+ + " \003(\0132/.google.api.DotnetSettings.RenamedServicesEntry\022K\n"
+ + "\021renamed_resources\030\003"
+ + " \003(\01320.google.api.DotnetSettings.RenamedResourcesEntry\022\031\n"
+ "\021ignored_resources\030\004 \003(\t\022 \n"
+ "\030forced_namespace_aliases\030\005 \003(\t\022\036\n"
+ "\026handwritten_signatures\030\006 \003(\t\0326\n"
@@ -346,15 +359,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\"\277\001\n\n"
+ "GoSettings\0222\n"
+ "\006common\030\001 \001(\0132\".google.api.CommonLanguageSettings\022E\n"
- + "\020renamed_services\030\002"
- + " \003(\0132+.google.api.GoSettings.RenamedServicesEntry\0326\n"
+ + "\020renamed_services\030\002 \003(\0132+."
+ + "google.api.GoSettings.RenamedServicesEntry\0326\n"
+ "\024RenamedServicesEntry\022\013\n"
+ "\003key\030\001 \001(\t\022\r\n"
- + "\005value\030\002 \001(\t:\0028\001\"\317\002\n"
+ + "\005value\030\002 \001(\t:\0028\001\"\202\003\n"
+ "\016MethodSettings\022\020\n"
+ "\010selector\030\001 \001(\t\022<\n"
+ "\014long_running\030\002 \001(\0132&.google.api.MethodSettings.LongRunning\022\035\n"
- + "\025auto_populated_fields\030\003 \003(\t\032\315\001\n"
+ + "\025auto_populated_fields\030\003 \003(\t\0221\n"
+ + "\010batching\030\004 \001(\0132\037.google.api.BatchingConfigProto\032\315\001\n"
+ "\013LongRunning\0225\n"
+ "\022initial_poll_delay\030\001 \001(\0132\031.google.protobuf.Duration\022\035\n"
+ "\025poll_delay_multiplier\030\002 \001(\002\0221\n"
@@ -362,7 +376,25 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\022total_poll_timeout\030\004 \001(\0132\031.google.protobuf.Duration\"Q\n"
+ "\030SelectiveGapicGeneration\022\017\n"
+ "\007methods\030\001 \003(\t\022$\n"
- + "\034generate_omitted_as_internal\030\002 \001(\010*\243\001\n"
+ + "\034generate_omitted_as_internal\030\002 \001(\010\"\213\001\n"
+ + "\023BatchingConfigProto\0225\n\n"
+ + "thresholds\030\001 \001(\0132!.google.api.BatchingSettingsProto\022=\n"
+ + "\020batch_descriptor\030\002"
+ + " \001(\0132#.google.api.BatchingDescriptorProto\"\353\002\n"
+ + "\025BatchingSettingsProto\022\037\n"
+ + "\027element_count_threshold\030\001 \001(\005\022\036\n"
+ + "\026request_byte_threshold\030\002 \001(\003\0222\n"
+ + "\017delay_threshold\030\003 \001(\0132\031.google.protobuf.Duration\022\033\n"
+ + "\023element_count_limit\030\004 \001(\005\022\032\n"
+ + "\022request_byte_limit\030\005 \001(\005\022\"\n"
+ + "\032flow_control_element_limit\030\006 \001(\005\022\037\n"
+ + "\027flow_control_byte_limit\030\007 \001(\005\022_\n"
+ + "$flow_control_limit_exceeded_behavior\030\010 \001(\01621.google.api"
+ + ".FlowControlLimitExceededBehaviorProto\"i\n"
+ + "\027BatchingDescriptorProto\022\025\n\r"
+ + "batched_field\030\001 \001(\t\022\034\n"
+ + "\024discriminator_fields\030\002 \003(\t\022\031\n"
+ + "\021subresponse_field\030\003 \001(\t*\243\001\n"
+ "\031ClientLibraryOrganization\022+\n"
+ "\'CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED\020\000\022\t\n"
+ "\005CLOUD\020\001\022\007\n"
@@ -376,14 +408,19 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "&CLIENT_LIBRARY_DESTINATION_UNSPECIFIED\020\000\022\n\n"
+ "\006GITHUB\020\n"
+ "\022\023\n"
- + "\017PACKAGE_MANAGER\020\024:9\n"
+ + "\017PACKAGE_MANAGER\020\024*g\n"
+ + "%FlowControlLimitExceededBehaviorProto\022\022\n"
+ + "\016UNSET_BEHAVIOR\020\000\022\023\n"
+ + "\017THROW_EXCEPTION\020\001\022\t\n"
+ + "\005BLOCK\020\002\022\n\n"
+ + "\006IGNORE\020\003:9\n"
+ "\020method_signature\022\036.google.protobuf.MethodOptions\030\233\010 \003(\t:6\n"
+ "\014default_host\022\037.google.protobuf.ServiceOptions\030\231\010 \001(\t:6\n"
+ "\014oauth_scopes\022\037.google.protobuf.ServiceOptions\030\232\010 \001(\t:8\n"
+ "\013api_version\022\037.google.protobuf.ServiceOptions\030\301\272\253\372\001 \001("
+ "\tBi\n"
- + "\016com.google.apiB\013ClientProtoP\001ZAgoogle.gola"
- + "ng.org/genproto/googleapis/api/annotations;annotations\242\002\004GAPIb\006proto3"
+ + "\016com.google.apiB\013ClientProtoP\001ZAgoogle.golang.o"
+ + "rg/genproto/googleapis/api/annotations;annotations\242\002\004GAPIb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -462,7 +499,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_api_PhpSettings_descriptor,
new java.lang.String[] {
- "Common",
+ "Common", "LibraryPackage",
});
internal_static_google_api_PythonSettings_descriptor = getDescriptor().getMessageType(6);
internal_static_google_api_PythonSettings_fieldAccessorTable =
@@ -541,7 +578,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_api_MethodSettings_descriptor,
new java.lang.String[] {
- "Selector", "LongRunning", "AutoPopulatedFields",
+ "Selector", "LongRunning", "AutoPopulatedFields", "Batching",
});
internal_static_google_api_MethodSettings_LongRunning_descriptor =
internal_static_google_api_MethodSettings_descriptor.getNestedType(0);
@@ -559,6 +596,36 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new java.lang.String[] {
"Methods", "GenerateOmittedAsInternal",
});
+ internal_static_google_api_BatchingConfigProto_descriptor = getDescriptor().getMessageType(13);
+ internal_static_google_api_BatchingConfigProto_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_api_BatchingConfigProto_descriptor,
+ new java.lang.String[] {
+ "Thresholds", "BatchDescriptor",
+ });
+ internal_static_google_api_BatchingSettingsProto_descriptor =
+ getDescriptor().getMessageType(14);
+ internal_static_google_api_BatchingSettingsProto_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_api_BatchingSettingsProto_descriptor,
+ new java.lang.String[] {
+ "ElementCountThreshold",
+ "RequestByteThreshold",
+ "DelayThreshold",
+ "ElementCountLimit",
+ "RequestByteLimit",
+ "FlowControlElementLimit",
+ "FlowControlByteLimit",
+ "FlowControlLimitExceededBehavior",
+ });
+ internal_static_google_api_BatchingDescriptorProto_descriptor =
+ getDescriptor().getMessageType(15);
+ internal_static_google_api_BatchingDescriptorProto_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_api_BatchingDescriptorProto_descriptor,
+ new java.lang.String[] {
+ "BatchedField", "DiscriminatorFields", "SubresponseField",
+ });
methodSignature.internalInit(descriptor.getExtension(0));
defaultHost.internalInit(descriptor.getExtension(1));
oauthScopes.internalInit(descriptor.getExtension(2));
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettings.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettings.java
index 03b2954e48..34174baffe 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettings.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettings.java
@@ -242,6 +242,8 @@ public int getDestinationsValue(int index) {
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -258,6 +260,8 @@ public boolean hasSelectiveGapicGeneration() {
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -276,6 +280,8 @@ public com.google.api.SelectiveGapicGeneration getSelectiveGapicGeneration() {
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1080,6 +1086,8 @@ public Builder addAllDestinationsValue(java.lang.Iterable
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1095,6 +1103,8 @@ public boolean hasSelectiveGapicGeneration() {
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1116,6 +1126,8 @@ public com.google.api.SelectiveGapicGeneration getSelectiveGapicGeneration() {
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1139,6 +1151,8 @@ public Builder setSelectiveGapicGeneration(com.google.api.SelectiveGapicGenerati
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1160,6 +1174,8 @@ public Builder setSelectiveGapicGeneration(
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1189,6 +1205,8 @@ public Builder mergeSelectiveGapicGeneration(com.google.api.SelectiveGapicGenera
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1209,6 +1227,8 @@ public Builder clearSelectiveGapicGeneration() {
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1224,6 +1244,8 @@ public com.google.api.SelectiveGapicGeneration.Builder getSelectiveGapicGenerati
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -1243,6 +1265,8 @@ public com.google.api.SelectiveGapicGenerationOrBuilder getSelectiveGapicGenerat
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettingsOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettingsOrBuilder.java
index d0112cddac..507ee8d279 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettingsOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/CommonLanguageSettingsOrBuilder.java
@@ -132,6 +132,8 @@ public interface CommonLanguageSettingsOrBuilder
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -145,6 +147,8 @@ public interface CommonLanguageSettingsOrBuilder
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
@@ -158,6 +162,8 @@ public interface CommonLanguageSettingsOrBuilder
*
*
* Configuration for which RPCs should be generated in the GAPIC client.
+ *
+ * Note: This field should not be used in most cases.
*
*
* .google.api.SelectiveGapicGeneration selective_gapic_generation = 3;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Control.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Control.java
index 060efcaf64..f7668465a5 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Control.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Control.java
@@ -83,8 +83,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -109,8 +109,8 @@ public java.lang.String getEnvironment() {
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -590,8 +590,8 @@ public Builder mergeFrom(
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -615,8 +615,8 @@ public java.lang.String getEnvironment() {
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -640,8 +640,8 @@ public com.google.protobuf.ByteString getEnvironmentBytes() {
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -664,8 +664,8 @@ public Builder setEnvironment(java.lang.String value) {
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -684,8 +684,8 @@ public Builder clearEnvironment() {
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ControlOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ControlOrBuilder.java
index c92523c0f8..035cfbb3be 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ControlOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ControlOrBuilder.java
@@ -31,8 +31,8 @@ public interface ControlOrBuilder
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
@@ -46,8 +46,8 @@ public interface ControlOrBuilder
*
*
* The service controller environment to use. If empty, no control plane
- * feature (like quota and billing) will be enabled. The recommended value for
- * most services is servicecontrol.googleapis.com
+ * features (like quota and billing) will be enabled. The recommended value
+ * for most services is servicecontrol.googleapis.com.
*
*
* string environment = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java
index 84f59f2904..8405c49de0 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java
@@ -858,6 +858,268 @@ public enum ErrorReason implements com.google.protobuf.ProtocolMessageEnum {
* OVERLOADED_CREDENTIALS = 34;
*/
OVERLOADED_CREDENTIALS(34),
+ /**
+ *
+ *
+ *
+ * The request whose associated location violates the location org policy
+ * restrictions when creating resources in the restricted region.
+ *
+ * Example of an ErrorInfo when creating the Cloud Storage Bucket in the
+ * container "projects/123" under a restricted region
+ * "locations/asia-northeast3":
+ *
+ * {
+ * "reason": "LOCATION_ORG_POLICY_VIOLATED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "resource": "projects/123",
+ * "location": "locations/asia-northeast3"
+ * }
+ * }
+ *
+ * This response indicates creating the Cloud Storage Bucket in
+ * "locations/asia-northeast3" violates the location org policy restriction.
+ *
+ *
+ * LOCATION_ORG_POLICY_VIOLATED = 35;
+ */
+ LOCATION_ORG_POLICY_VIOLATED(35),
+ /**
+ *
+ *
+ *
+ * The request is denied because it access data of regulated customers using
+ * TLS 1.0 and 1.1.
+ *
+ * Example of an ErrorInfo when accessing a GCP resource "projects/123" that
+ * is restricted by TLS Version Restriction for "pubsub.googleapis.com"
+ * service.
+ *
+ * {
+ * "reason": "TLS_ORG_POLICY_VIOLATED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "pubsub.googleapis.com"
+ * "resource": "projects/123",
+ * "policyName": "constraints/gcp.restrictTLSVersion",
+ * "tlsVersion": "TLS_VERSION_1"
+ * }
+ * }
+ *
+ *
+ * TLS_ORG_POLICY_VIOLATED = 36;
+ */
+ TLS_ORG_POLICY_VIOLATED(36),
+ /**
+ *
+ *
+ *
+ * The request is denied because the associated project has exceeded the
+ * emulator quota limit.
+ *
+ * Example of an ErrorInfo when the associated "projects/123" has exceeded the
+ * emulator quota limit.
+ *
+ * {
+ * "reason": "EMULATOR_QUOTA_EXCEEDED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "pubsub.googleapis.com"
+ * "consumer": "projects/123"
+ * }
+ * }
+ *
+ *
+ * EMULATOR_QUOTA_EXCEEDED = 38;
+ */
+ EMULATOR_QUOTA_EXCEEDED(38),
+ /**
+ *
+ *
+ *
+ * The request is denied because the associated application credential header
+ * is invalid for an Android applications.
+ *
+ * Example of an ErrorInfo when the request from an Android application to the
+ * "pubsub.googleapis.com" with an invalid application credential header.
+ *
+ * {
+ * "reason": "CREDENTIAL_ANDROID_APP_INVALID",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "pubsub.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * CREDENTIAL_ANDROID_APP_INVALID = 39;
+ */
+ CREDENTIAL_ANDROID_APP_INVALID(39),
+ /**
+ *
+ *
+ *
+ * The request is denied because IAM permission on resource is denied.
+ *
+ * Example of an ErrorInfo when the IAM permission `aiplatform.datasets.list`
+ * is denied on resource `projects/123`.
+ *
+ * {
+ * "reason": "IAM_PERMISSION_DENIED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "resource": "projects/123"
+ * "permission": "aiplatform.datasets.list"
+ * }
+ * }
+ *
+ *
+ * IAM_PERMISSION_DENIED = 41;
+ */
+ IAM_PERMISSION_DENIED(41),
+ /**
+ *
+ *
+ *
+ * The request is denied because it contains the invalid JWT token.
+ *
+ * Example of an ErrorInfo when the request contains an invalid JWT token for
+ * service `storage.googleapis.com`.
+ *
+ * {
+ * "reason": "JWT_TOKEN_INVALID",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * JWT_TOKEN_INVALID = 42;
+ */
+ JWT_TOKEN_INVALID(42),
+ /**
+ *
+ *
+ *
+ * The request is denied because it contains credential with type that is
+ * unsupported.
+ *
+ * Example of an ErrorInfo when the request contains an unsupported credential
+ * type for service `storage.googleapis.com`.
+ *
+ * {
+ * "reason": "CREDENTIAL_TYPE_UNSUPPORTED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * CREDENTIAL_TYPE_UNSUPPORTED = 43;
+ */
+ CREDENTIAL_TYPE_UNSUPPORTED(43),
+ /**
+ *
+ *
+ *
+ * The request is denied because it contains unsupported account type.
+ *
+ * Example of an ErrorInfo when the request contains an unsupported account
+ * type for service `storage.googleapis.com`.
+ *
+ * {
+ * "reason": "ACCOUNT_TYPE_UNSUPPORTED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * ACCOUNT_TYPE_UNSUPPORTED = 44;
+ */
+ ACCOUNT_TYPE_UNSUPPORTED(44),
+ /**
+ *
+ *
+ *
+ * The request is denied because the API endpoint is restricted by
+ * administrators according to the organization policy constraint.
+ * For more information see
+ * https://cloud.google.com/assured-workloads/docs/restrict-endpoint-usage.
+ *
+ * Example of an ErrorInfo when access to Google Cloud Storage service is
+ * restricted by Restrict Endpoint Usage policy:
+ *
+ * {
+ * "reason": "ENDPOINT_USAGE_RESTRICTION_VIOLATED",
+ * "domain": "googleapis.com/policies/endpointUsageRestriction",
+ * "metadata": {
+ * "policy_name": "constraints/gcp.restrictEndpointUsage",
+ * "checked_value": "storage.googleapis.com"
+ * "consumer": "organization/123"
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * ENDPOINT_USAGE_RESTRICTION_VIOLATED = 45;
+ */
+ ENDPOINT_USAGE_RESTRICTION_VIOLATED(45),
+ /**
+ *
+ *
+ *
+ * The request is denied because the TLS Cipher Suite is restricted by
+ * administrators according to the organization policy constraint.
+ * For more information see
+ * https://cloud.google.com/assured-workloads/docs/restrict-tls-cipher-suites
+ *
+ * Example of an ErrorInfo when access to Google Cloud BigQuery service is
+ * restricted by Restrict TLS Cipher Suites policy:
+ *
+ * {
+ * "reason": "TLS_CIPHER_RESTRICTION_VIOLATED",
+ * "domain": "googleapis.com/policies/tlsCipherRestriction",
+ * "metadata": {
+ * "policy_name": "constraints/gcp.restrictTLSCipherSuites",
+ * "checked_value": "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+ * "consumer": "organization/123"
+ * "service": "bigquery.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * TLS_CIPHER_RESTRICTION_VIOLATED = 46;
+ */
+ TLS_CIPHER_RESTRICTION_VIOLATED(46),
+ /**
+ *
+ *
+ *
+ * The request is denied because the MCP activation check fails.
+ *
+ * Example of an ErrorInfo when the container "projects/123" contacting
+ * "pubsub.googleapis.com" service which is disabled by MCP:
+ *
+ * { "reason": "MCP_SERVER_DISABLED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "consumer": "projects/123",
+ * "service": "pubsub.googleapis.com"
+ * }
+ * }
+ *
+ * This response indicates the "pubsub.googleapis.com" has been disabled in
+ * "projects/123" for MCP.
+ *
+ *
+ * MCP_SERVER_DISABLED = 47;
+ */
+ MCP_SERVER_DISABLED(47),
UNRECOGNIZED(-1),
;
@@ -1722,6 +1984,279 @@ public enum ErrorReason implements com.google.protobuf.ProtocolMessageEnum {
*/
public static final int OVERLOADED_CREDENTIALS_VALUE = 34;
+ /**
+ *
+ *
+ *
+ * The request whose associated location violates the location org policy
+ * restrictions when creating resources in the restricted region.
+ *
+ * Example of an ErrorInfo when creating the Cloud Storage Bucket in the
+ * container "projects/123" under a restricted region
+ * "locations/asia-northeast3":
+ *
+ * {
+ * "reason": "LOCATION_ORG_POLICY_VIOLATED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "resource": "projects/123",
+ * "location": "locations/asia-northeast3"
+ * }
+ * }
+ *
+ * This response indicates creating the Cloud Storage Bucket in
+ * "locations/asia-northeast3" violates the location org policy restriction.
+ *
+ *
+ * LOCATION_ORG_POLICY_VIOLATED = 35;
+ */
+ public static final int LOCATION_ORG_POLICY_VIOLATED_VALUE = 35;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because it access data of regulated customers using
+ * TLS 1.0 and 1.1.
+ *
+ * Example of an ErrorInfo when accessing a GCP resource "projects/123" that
+ * is restricted by TLS Version Restriction for "pubsub.googleapis.com"
+ * service.
+ *
+ * {
+ * "reason": "TLS_ORG_POLICY_VIOLATED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "pubsub.googleapis.com"
+ * "resource": "projects/123",
+ * "policyName": "constraints/gcp.restrictTLSVersion",
+ * "tlsVersion": "TLS_VERSION_1"
+ * }
+ * }
+ *
+ *
+ * TLS_ORG_POLICY_VIOLATED = 36;
+ */
+ public static final int TLS_ORG_POLICY_VIOLATED_VALUE = 36;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because the associated project has exceeded the
+ * emulator quota limit.
+ *
+ * Example of an ErrorInfo when the associated "projects/123" has exceeded the
+ * emulator quota limit.
+ *
+ * {
+ * "reason": "EMULATOR_QUOTA_EXCEEDED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "pubsub.googleapis.com"
+ * "consumer": "projects/123"
+ * }
+ * }
+ *
+ *
+ * EMULATOR_QUOTA_EXCEEDED = 38;
+ */
+ public static final int EMULATOR_QUOTA_EXCEEDED_VALUE = 38;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because the associated application credential header
+ * is invalid for an Android applications.
+ *
+ * Example of an ErrorInfo when the request from an Android application to the
+ * "pubsub.googleapis.com" with an invalid application credential header.
+ *
+ * {
+ * "reason": "CREDENTIAL_ANDROID_APP_INVALID",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "pubsub.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * CREDENTIAL_ANDROID_APP_INVALID = 39;
+ */
+ public static final int CREDENTIAL_ANDROID_APP_INVALID_VALUE = 39;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because IAM permission on resource is denied.
+ *
+ * Example of an ErrorInfo when the IAM permission `aiplatform.datasets.list`
+ * is denied on resource `projects/123`.
+ *
+ * {
+ * "reason": "IAM_PERMISSION_DENIED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "resource": "projects/123"
+ * "permission": "aiplatform.datasets.list"
+ * }
+ * }
+ *
+ *
+ * IAM_PERMISSION_DENIED = 41;
+ */
+ public static final int IAM_PERMISSION_DENIED_VALUE = 41;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because it contains the invalid JWT token.
+ *
+ * Example of an ErrorInfo when the request contains an invalid JWT token for
+ * service `storage.googleapis.com`.
+ *
+ * {
+ * "reason": "JWT_TOKEN_INVALID",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * JWT_TOKEN_INVALID = 42;
+ */
+ public static final int JWT_TOKEN_INVALID_VALUE = 42;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because it contains credential with type that is
+ * unsupported.
+ *
+ * Example of an ErrorInfo when the request contains an unsupported credential
+ * type for service `storage.googleapis.com`.
+ *
+ * {
+ * "reason": "CREDENTIAL_TYPE_UNSUPPORTED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * CREDENTIAL_TYPE_UNSUPPORTED = 43;
+ */
+ public static final int CREDENTIAL_TYPE_UNSUPPORTED_VALUE = 43;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because it contains unsupported account type.
+ *
+ * Example of an ErrorInfo when the request contains an unsupported account
+ * type for service `storage.googleapis.com`.
+ *
+ * {
+ * "reason": "ACCOUNT_TYPE_UNSUPPORTED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * ACCOUNT_TYPE_UNSUPPORTED = 44;
+ */
+ public static final int ACCOUNT_TYPE_UNSUPPORTED_VALUE = 44;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because the API endpoint is restricted by
+ * administrators according to the organization policy constraint.
+ * For more information see
+ * https://cloud.google.com/assured-workloads/docs/restrict-endpoint-usage.
+ *
+ * Example of an ErrorInfo when access to Google Cloud Storage service is
+ * restricted by Restrict Endpoint Usage policy:
+ *
+ * {
+ * "reason": "ENDPOINT_USAGE_RESTRICTION_VIOLATED",
+ * "domain": "googleapis.com/policies/endpointUsageRestriction",
+ * "metadata": {
+ * "policy_name": "constraints/gcp.restrictEndpointUsage",
+ * "checked_value": "storage.googleapis.com"
+ * "consumer": "organization/123"
+ * "service": "storage.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * ENDPOINT_USAGE_RESTRICTION_VIOLATED = 45;
+ */
+ public static final int ENDPOINT_USAGE_RESTRICTION_VIOLATED_VALUE = 45;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because the TLS Cipher Suite is restricted by
+ * administrators according to the organization policy constraint.
+ * For more information see
+ * https://cloud.google.com/assured-workloads/docs/restrict-tls-cipher-suites
+ *
+ * Example of an ErrorInfo when access to Google Cloud BigQuery service is
+ * restricted by Restrict TLS Cipher Suites policy:
+ *
+ * {
+ * "reason": "TLS_CIPHER_RESTRICTION_VIOLATED",
+ * "domain": "googleapis.com/policies/tlsCipherRestriction",
+ * "metadata": {
+ * "policy_name": "constraints/gcp.restrictTLSCipherSuites",
+ * "checked_value": "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+ * "consumer": "organization/123"
+ * "service": "bigquery.googleapis.com"
+ * }
+ * }
+ *
+ *
+ * TLS_CIPHER_RESTRICTION_VIOLATED = 46;
+ */
+ public static final int TLS_CIPHER_RESTRICTION_VIOLATED_VALUE = 46;
+
+ /**
+ *
+ *
+ *
+ * The request is denied because the MCP activation check fails.
+ *
+ * Example of an ErrorInfo when the container "projects/123" contacting
+ * "pubsub.googleapis.com" service which is disabled by MCP:
+ *
+ * { "reason": "MCP_SERVER_DISABLED",
+ * "domain": "googleapis.com",
+ * "metadata": {
+ * "consumer": "projects/123",
+ * "service": "pubsub.googleapis.com"
+ * }
+ * }
+ *
+ * This response indicates the "pubsub.googleapis.com" has been disabled in
+ * "projects/123" for MCP.
+ *
+ *
+ * MCP_SERVER_DISABLED = 47;
+ */
+ public static final int MCP_SERVER_DISABLED_VALUE = 47;
+
public final int getNumber() {
if (this == UNRECOGNIZED) {
throw new java.lang.IllegalArgumentException(
@@ -1812,6 +2347,28 @@ public static ErrorReason forNumber(int value) {
return MISSING_ORIGIN;
case 34:
return OVERLOADED_CREDENTIALS;
+ case 35:
+ return LOCATION_ORG_POLICY_VIOLATED;
+ case 36:
+ return TLS_ORG_POLICY_VIOLATED;
+ case 38:
+ return EMULATOR_QUOTA_EXCEEDED;
+ case 39:
+ return CREDENTIAL_ANDROID_APP_INVALID;
+ case 41:
+ return IAM_PERMISSION_DENIED;
+ case 42:
+ return JWT_TOKEN_INVALID;
+ case 43:
+ return CREDENTIAL_TYPE_UNSUPPORTED;
+ case 44:
+ return ACCOUNT_TYPE_UNSUPPORTED;
+ case 45:
+ return ENDPOINT_USAGE_RESTRICTION_VIOLATED;
+ case 46:
+ return TLS_CIPHER_RESTRICTION_VIOLATED;
+ case 47:
+ return MCP_SERVER_DISABLED;
default:
return null;
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java
index 94f39f58ba..b49906b66f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java
@@ -49,7 +49,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
static {
java.lang.String[] descriptorData = {
"\n\035google/api/error_reason.proto\022\ngoogle."
- + "api*\272\007\n\013ErrorReason\022\034\n\030ERROR_REASON_UNSP"
+ + "api*\222\n\n\013ErrorReason\022\034\n\030ERROR_REASON_UNSP"
+ "ECIFIED\020\000\022\024\n\020SERVICE_DISABLED\020\001\022\024\n\020BILLI"
+ "NG_DISABLED\020\002\022\023\n\017API_KEY_INVALID\020\003\022\033\n\027AP"
+ "I_KEY_SERVICE_BLOCKED\020\004\022!\n\035API_KEY_HTTP_"
@@ -73,10 +73,18 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\n\023SERVICE_NOT_VISIBLE\020\035\022\021\n\rGCP_SUSPENDED"
+ "\020\036\022\034\n\030LOCATION_POLICY_VIOLATED\020\037\022\022\n\016MISS"
+ "ING_ORIGIN\020!\022\032\n\026OVERLOADED_CREDENTIALS\020\""
- + "Bp\n\016com.google.apiB\020ErrorReasonProtoP\001ZC"
- + "google.golang.org/genproto/googleapis/ap"
- + "i/error_reason;error_reason\242\002\004GAPIb\006prot"
- + "o3"
+ + "\022 \n\034LOCATION_ORG_POLICY_VIOLATED\020#\022\033\n\027TL"
+ + "S_ORG_POLICY_VIOLATED\020$\022\033\n\027EMULATOR_QUOT"
+ + "A_EXCEEDED\020&\022\"\n\036CREDENTIAL_ANDROID_APP_I"
+ + "NVALID\020\'\022\031\n\025IAM_PERMISSION_DENIED\020)\022\025\n\021J"
+ + "WT_TOKEN_INVALID\020*\022\037\n\033CREDENTIAL_TYPE_UN"
+ + "SUPPORTED\020+\022\034\n\030ACCOUNT_TYPE_UNSUPPORTED\020"
+ + ",\022\'\n#ENDPOINT_USAGE_RESTRICTION_VIOLATED"
+ + "\020-\022#\n\037TLS_CIPHER_RESTRICTION_VIOLATED\020.\022"
+ + "\027\n\023MCP_SERVER_DISABLED\020/Bp\n\016com.google.a"
+ + "piB\020ErrorReasonProtoP\001ZCgoogle.golang.or"
+ + "g/genproto/googleapis/api/error_reason;e"
+ + "rror_reason\242\002\004GAPIb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/FlowControlLimitExceededBehaviorProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/FlowControlLimitExceededBehaviorProto.java
new file mode 100644
index 0000000000..b22978eb3f
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/FlowControlLimitExceededBehaviorProto.java
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/api/client.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.api;
+
+/**
+ *
+ *
+ * + * The behavior to take when the flow control limit is exceeded. + *+ * + * Protobuf enum {@code google.api.FlowControlLimitExceededBehaviorProto} + */ +@com.google.protobuf.Generated +public enum FlowControlLimitExceededBehaviorProto + implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Default behavior, system-defined. + *+ * + *
UNSET_BEHAVIOR = 0;
+ */
+ UNSET_BEHAVIOR(0),
+ /**
+ *
+ *
+ * + * Stop operation, raise error. + *+ * + *
THROW_EXCEPTION = 1;
+ */
+ THROW_EXCEPTION(1),
+ /**
+ *
+ *
+ * + * Pause operation until limit clears. + *+ * + *
BLOCK = 2;
+ */
+ BLOCK(2),
+ /**
+ *
+ *
+ * + * Continue operation, disregard limit. + *+ * + *
IGNORE = 3;
+ */
+ IGNORE(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "FlowControlLimitExceededBehaviorProto");
+ }
+
+ /**
+ *
+ *
+ * + * Default behavior, system-defined. + *+ * + *
UNSET_BEHAVIOR = 0;
+ */
+ public static final int UNSET_BEHAVIOR_VALUE = 0;
+
+ /**
+ *
+ *
+ * + * Stop operation, raise error. + *+ * + *
THROW_EXCEPTION = 1;
+ */
+ public static final int THROW_EXCEPTION_VALUE = 1;
+
+ /**
+ *
+ *
+ * + * Pause operation until limit clears. + *+ * + *
BLOCK = 2;
+ */
+ public static final int BLOCK_VALUE = 2;
+
+ /**
+ *
+ *
+ * + * Continue operation, disregard limit. + *+ * + *
IGNORE = 3;
+ */
+ public static final int IGNORE_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static FlowControlLimitExceededBehaviorProto valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static FlowControlLimitExceededBehaviorProto forNumber(int value) {
+ switch (value) {
+ case 0:
+ return UNSET_BEHAVIOR;
+ case 1:
+ return THROW_EXCEPTION;
+ case 2:
+ return BLOCK;
+ case 3:
+ return IGNORE;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ *
+ * @return Whether the batching field is set.
+ */
+ @java.lang.Override
+ public boolean hasBatching() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ *
+ * @return The batching.
+ */
+ @java.lang.Override
+ public com.google.api.BatchingConfigProto getBatching() {
+ return batching_ == null ? com.google.api.BatchingConfigProto.getDefaultInstance() : batching_;
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ @java.lang.Override
+ public com.google.api.BatchingConfigProtoOrBuilder getBatchingOrBuilder() {
+ return batching_ == null ? com.google.api.BatchingConfigProto.getDefaultInstance() : batching_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -1897,6 +1976,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
for (int i = 0; i < autoPopulatedFields_.size(); i++) {
com.google.protobuf.GeneratedMessage.writeString(output, 3, autoPopulatedFields_.getRaw(i));
}
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(4, getBatching());
+ }
getUnknownFields().writeTo(output);
}
@@ -1920,6 +2002,9 @@ public int getSerializedSize() {
size += dataSize;
size += 1 * getAutoPopulatedFieldsList().size();
}
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getBatching());
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -1941,6 +2026,10 @@ public boolean equals(final java.lang.Object obj) {
if (!getLongRunning().equals(other.getLongRunning())) return false;
}
if (!getAutoPopulatedFieldsList().equals(other.getAutoPopulatedFieldsList())) return false;
+ if (hasBatching() != other.hasBatching()) return false;
+ if (hasBatching()) {
+ if (!getBatching().equals(other.getBatching())) return false;
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -1962,6 +2051,10 @@ public int hashCode() {
hash = (37 * hash) + AUTO_POPULATED_FIELDS_FIELD_NUMBER;
hash = (53 * hash) + getAutoPopulatedFieldsList().hashCode();
}
+ if (hasBatching()) {
+ hash = (37 * hash) + BATCHING_FIELD_NUMBER;
+ hash = (53 * hash) + getBatching().hashCode();
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -2100,6 +2193,7 @@ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
internalGetLongRunningFieldBuilder();
+ internalGetBatchingFieldBuilder();
}
}
@@ -2114,6 +2208,11 @@ public Builder clear() {
longRunningBuilder_ = null;
}
autoPopulatedFields_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ batching_ = null;
+ if (batchingBuilder_ != null) {
+ batchingBuilder_.dispose();
+ batchingBuilder_ = null;
+ }
return this;
}
@@ -2161,6 +2260,10 @@ private void buildPartial0(com.google.api.MethodSettings result) {
autoPopulatedFields_.makeImmutable();
result.autoPopulatedFields_ = autoPopulatedFields_;
}
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.batching_ = batchingBuilder_ == null ? batching_ : batchingBuilder_.build();
+ to_bitField0_ |= 0x00000002;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -2194,6 +2297,9 @@ public Builder mergeFrom(com.google.api.MethodSettings other) {
}
onChanged();
}
+ if (other.hasBatching()) {
+ mergeBatching(other.getBatching());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -2240,6 +2346,13 @@ public Builder mergeFrom(
autoPopulatedFields_.add(s);
break;
} // case 26
+ case 34:
+ {
+ input.readMessage(
+ internalGetBatchingFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 34
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -2995,6 +3108,290 @@ public Builder addAutoPopulatedFieldsBytes(com.google.protobuf.ByteString value)
return this;
}
+ private com.google.api.BatchingConfigProto batching_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingConfigProto,
+ com.google.api.BatchingConfigProto.Builder,
+ com.google.api.BatchingConfigProtoOrBuilder>
+ batchingBuilder_;
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ *
+ * @return Whether the batching field is set.
+ */
+ public boolean hasBatching() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ *
+ * @return The batching.
+ */
+ public com.google.api.BatchingConfigProto getBatching() {
+ if (batchingBuilder_ == null) {
+ return batching_ == null
+ ? com.google.api.BatchingConfigProto.getDefaultInstance()
+ : batching_;
+ } else {
+ return batchingBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ public Builder setBatching(com.google.api.BatchingConfigProto value) {
+ if (batchingBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ batching_ = value;
+ } else {
+ batchingBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ public Builder setBatching(com.google.api.BatchingConfigProto.Builder builderForValue) {
+ if (batchingBuilder_ == null) {
+ batching_ = builderForValue.build();
+ } else {
+ batchingBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ public Builder mergeBatching(com.google.api.BatchingConfigProto value) {
+ if (batchingBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) != 0)
+ && batching_ != null
+ && batching_ != com.google.api.BatchingConfigProto.getDefaultInstance()) {
+ getBatchingBuilder().mergeFrom(value);
+ } else {
+ batching_ = value;
+ }
+ } else {
+ batchingBuilder_.mergeFrom(value);
+ }
+ if (batching_ != null) {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ public Builder clearBatching() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ batching_ = null;
+ if (batchingBuilder_ != null) {
+ batchingBuilder_.dispose();
+ batchingBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ public com.google.api.BatchingConfigProto.Builder getBatchingBuilder() {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return internalGetBatchingFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ public com.google.api.BatchingConfigProtoOrBuilder getBatchingOrBuilder() {
+ if (batchingBuilder_ != null) {
+ return batchingBuilder_.getMessageOrBuilder();
+ } else {
+ return batching_ == null
+ ? com.google.api.BatchingConfigProto.getDefaultInstance()
+ : batching_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingConfigProto,
+ com.google.api.BatchingConfigProto.Builder,
+ com.google.api.BatchingConfigProtoOrBuilder>
+ internalGetBatchingFieldBuilder() {
+ if (batchingBuilder_ == null) {
+ batchingBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.api.BatchingConfigProto,
+ com.google.api.BatchingConfigProto.Builder,
+ com.google.api.BatchingConfigProtoOrBuilder>(
+ getBatching(), getParentForChildren(), isClean());
+ batching_ = null;
+ }
+ return batchingBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.api.MethodSettings)
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java
index 90c24d2333..fa778fe082 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java
@@ -237,4 +237,71 @@ public interface MethodSettingsOrBuilder
* @return The bytes of the autoPopulatedFields at the given index.
*/
com.google.protobuf.ByteString getAutoPopulatedFieldsBytes(int index);
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ *
+ * @return Whether the batching field is set.
+ */
+ boolean hasBatching();
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ *
+ * @return The batching.
+ */
+ com.google.api.BatchingConfigProto getBatching();
+
+ /**
+ *
+ *
+ * + * Batching configuration for an API method in client libraries. + * + * Example of a YAML configuration: + * + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.BatchCreateExample + * batching: + * element_count_threshold: 1000 + * request_byte_threshold: 100000000 + * delay_threshold_millis: 10 + *+ * + *
.google.api.BatchingConfigProto batching = 4;
+ */
+ com.google.api.BatchingConfigProtoOrBuilder getBatchingOrBuilder();
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirements.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirements.java
index 75b6bc9058..44e3f4351f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirements.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirements.java
@@ -96,6 +96,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -126,6 +127,7 @@ public java.lang.String getCanonicalScopes() {
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -479,6 +481,7 @@ public Builder mergeFrom(
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -508,6 +511,7 @@ public java.lang.String getCanonicalScopes() {
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -537,6 +541,7 @@ public com.google.protobuf.ByteString getCanonicalScopesBytes() {
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -565,6 +570,7 @@ public Builder setCanonicalScopes(java.lang.String value) {
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -589,6 +595,7 @@ public Builder clearCanonicalScopes() {
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirementsOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirementsOrBuilder.java
index 70c7e2c7d7..4b28739976 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirementsOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/OAuthRequirementsOrBuilder.java
@@ -33,6 +33,7 @@ public interface OAuthRequirementsOrBuilder
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
@@ -52,6 +53,7 @@ public interface OAuthRequirementsOrBuilder
* The list of publicly documented OAuth scopes that are allowed access. An
* OAuth token containing any of these scopes will be accepted.
*
+ *
* Example:
*
* canonical_scopes: https://www.googleapis.com/auth/calendar,
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettings.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettings.java
index eff8b20b9e..9f1787c4ad 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettings.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettings.java
@@ -51,7 +51,9 @@ private PhpSettings(com.google.protobuf.GeneratedMessage.Builder> builder) {
super(builder);
}
- private PhpSettings() {}
+ private PhpSettings() {
+ libraryPackage_ = "";
+ }
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
return com.google.api.ClientProto.internal_static_google_api_PhpSettings_descriptor;
@@ -115,6 +117,81 @@ public com.google.api.CommonLanguageSettingsOrBuilder getCommonOrBuilder() {
return common_ == null ? com.google.api.CommonLanguageSettings.getDefaultInstance() : common_;
}
+ public static final int LIBRARY_PACKAGE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object libraryPackage_ = "";
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return The libraryPackage.
+ */
+ @java.lang.Override
+ public java.lang.String getLibraryPackage() {
+ java.lang.Object ref = libraryPackage_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ libraryPackage_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return The bytes for libraryPackage.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getLibraryPackageBytes() {
+ java.lang.Object ref = libraryPackage_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ libraryPackage_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -132,6 +209,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000001) != 0)) {
output.writeMessage(1, getCommon());
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(libraryPackage_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, libraryPackage_);
+ }
getUnknownFields().writeTo(output);
}
@@ -144,6 +224,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000001) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getCommon());
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(libraryPackage_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, libraryPackage_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -163,6 +246,7 @@ public boolean equals(final java.lang.Object obj) {
if (hasCommon()) {
if (!getCommon().equals(other.getCommon())) return false;
}
+ if (!getLibraryPackage().equals(other.getLibraryPackage())) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -178,6 +262,8 @@ public int hashCode() {
hash = (37 * hash) + COMMON_FIELD_NUMBER;
hash = (53 * hash) + getCommon().hashCode();
}
+ hash = (37 * hash) + LIBRARY_PACKAGE_FIELD_NUMBER;
+ hash = (53 * hash) + getLibraryPackage().hashCode();
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -328,6 +414,7 @@ public Builder clear() {
commonBuilder_.dispose();
commonBuilder_ = null;
}
+ libraryPackage_ = "";
return this;
}
@@ -367,6 +454,9 @@ private void buildPartial0(com.google.api.PhpSettings result) {
result.common_ = commonBuilder_ == null ? common_ : commonBuilder_.build();
to_bitField0_ |= 0x00000001;
}
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.libraryPackage_ = libraryPackage_;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -385,6 +475,11 @@ public Builder mergeFrom(com.google.api.PhpSettings other) {
if (other.hasCommon()) {
mergeCommon(other.getCommon());
}
+ if (!other.getLibraryPackage().isEmpty()) {
+ libraryPackage_ = other.libraryPackage_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -417,6 +512,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000001;
break;
} // case 10
+ case 18:
+ {
+ libraryPackage_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -630,6 +731,172 @@ public com.google.api.CommonLanguageSettingsOrBuilder getCommonOrBuilder() {
return commonBuilder_;
}
+ private java.lang.Object libraryPackage_ = "";
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return The libraryPackage.
+ */
+ public java.lang.String getLibraryPackage() {
+ java.lang.Object ref = libraryPackage_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ libraryPackage_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return The bytes for libraryPackage.
+ */
+ public com.google.protobuf.ByteString getLibraryPackageBytes() {
+ java.lang.Object ref = libraryPackage_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ libraryPackage_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @param value The libraryPackage to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLibraryPackage(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ libraryPackage_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearLibraryPackage() {
+ libraryPackage_ = getDefaultInstance().getLibraryPackage();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @param value The bytes for libraryPackage to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLibraryPackageBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ libraryPackage_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.api.PhpSettings)
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettingsOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettingsOrBuilder.java
index bdb702f445..e67df67499 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettingsOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PhpSettingsOrBuilder.java
@@ -62,4 +62,52 @@ public interface PhpSettingsOrBuilder
* .google.api.CommonLanguageSettings common = 1;
*/
com.google.api.CommonLanguageSettingsOrBuilder getCommonOrBuilder();
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return The libraryPackage.
+ */
+ java.lang.String getLibraryPackage();
+
+ /**
+ *
+ *
+ * + * The package name to use in Php. Clobbers the php_namespace option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.php.package_name" field + * in gapic.yaml. API teams should use the protobuf php_namespace option + * where possible. + * + * Example of a YAML configuration:: + * + * publishing: + * library_settings: + * php_settings: + * library_package: Google\Cloud\PubSub\V1 + *+ * + *
string library_package = 2;
+ *
+ * @return The bytes for libraryPackage.
+ */
+ com.google.protobuf.ByteString getLibraryPackageBytes();
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/RoutingRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/RoutingRule.java
index bc31392bb9..3ee0dda986 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/RoutingRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/RoutingRule.java
@@ -54,9 +54,13 @@
* app_profile_id: profiles/prof_qux
* }
*
- * The routing header consists of one or multiple key-value pairs. Every key
- * and value must be percent-encoded, and joined together in the format of
- * `key1=value1&key2=value2`.
+ * The routing header consists of one or multiple key-value pairs. The order of
+ * the key-value pairs is undefined, the order of the `routing_parameters` in
+ * the `RoutingRule` only matters for the evaluation order of the path
+ * templates when `field` is the same. See the examples below for more details.
+ *
+ * Every key and value in the routing header must be percent-encoded,
+ * and joined together in the following format: `key1=value1&key2=value2`.
* The examples below skip the percent-encoding for readability.
*
* Example 1
@@ -721,9 +725,13 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
* app_profile_id: profiles/prof_qux
* }
*
- * The routing header consists of one or multiple key-value pairs. Every key
- * and value must be percent-encoded, and joined together in the format of
- * `key1=value1&key2=value2`.
+ * The routing header consists of one or multiple key-value pairs. The order of
+ * the key-value pairs is undefined, the order of the `routing_parameters` in
+ * the `RoutingRule` only matters for the evaluation order of the path
+ * templates when `field` is the same. See the examples below for more details.
+ *
+ * Every key and value in the routing header must be percent-encoded,
+ * and joined together in the following format: `key1=value1&key2=value2`.
* The examples below skip the percent-encoding for readability.
*
* Example 1
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SelectiveGapicGeneration.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SelectiveGapicGeneration.java
index af2200758b..18e8be2b77 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SelectiveGapicGeneration.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SelectiveGapicGeneration.java
@@ -26,6 +26,8 @@
* * This message is used to configure the generation of a subset of the RPCs in * a service for client libraries. + * + * Note: This feature should not be used in most cases. ** * Protobuf type {@code google.api.SelectiveGapicGeneration} @@ -348,6 +350,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder *
* This message is used to configure the generation of a subset of the RPCs in
* a service for client libraries.
+ *
+ * Note: This feature should not be used in most cases.
*
*
* Protobuf type {@code google.api.SelectiveGapicGeneration}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java
index 2a5f6ffc6b..cfeb4269c6 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java
@@ -1292,8 +1292,7 @@ public com.google.api.MetricDescriptorOrBuilder getMetricsOrBuilder(int index) {
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -1308,8 +1307,7 @@ public java.util.List
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -1325,8 +1323,7 @@ public java.util.List
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -1341,8 +1338,7 @@ public int getMonitoredResourcesCount() {
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -1357,8 +1353,7 @@ public com.google.api.MonitoredResourceDescriptor getMonitoredResources(int inde
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7633,8 +7628,7 @@ private void ensureMonitoredResourcesIsMutable() {
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7652,8 +7646,7 @@ public java.util.List
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7671,8 +7664,7 @@ public int getMonitoredResourcesCount() {
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7690,8 +7682,7 @@ public com.google.api.MonitoredResourceDescriptor getMonitoredResources(int inde
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7716,8 +7707,7 @@ public Builder setMonitoredResources(
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7739,8 +7729,7 @@ public Builder setMonitoredResources(
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7764,8 +7753,7 @@ public Builder addMonitoredResources(com.google.api.MonitoredResourceDescriptor
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7790,8 +7778,7 @@ public Builder addMonitoredResources(
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7813,8 +7800,7 @@ public Builder addMonitoredResources(
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7836,8 +7822,7 @@ public Builder addMonitoredResources(
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7859,8 +7844,7 @@ public Builder addAllMonitoredResources(
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7881,8 +7865,7 @@ public Builder clearMonitoredResources() {
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7903,8 +7886,7 @@ public Builder removeMonitoredResources(int index) {
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7919,8 +7901,7 @@ public com.google.api.MonitoredResourceDescriptor.Builder getMonitoredResourcesB
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7939,8 +7920,7 @@ public com.google.api.MonitoredResourceDescriptorOrBuilder getMonitoredResources
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7959,8 +7939,7 @@ public com.google.api.MonitoredResourceDescriptorOrBuilder getMonitoredResources
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7975,8 +7954,7 @@ public com.google.api.MonitoredResourceDescriptor.Builder addMonitoredResourcesB
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -7992,8 +7970,7 @@ public com.google.api.MonitoredResourceDescriptor.Builder addMonitoredResourcesB
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java
index ae7e2ea7c7..474fedefe0 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java
@@ -870,8 +870,7 @@ public interface ServiceOrBuilder
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -883,8 +882,7 @@ public interface ServiceOrBuilder
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -896,8 +894,7 @@ public interface ServiceOrBuilder
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -909,8 +906,7 @@ public interface ServiceOrBuilder
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
@@ -923,8 +919,7 @@ public interface ServiceOrBuilder
*
*
* Defines the monitored resources used by this service. This is required
- * by the [Service.monitoring][google.api.Service.monitoring] and
- * [Service.logging][google.api.Service.logging] configurations.
+ * by the `Service.monitoring` and `Service.logging` configurations.
*
*
* repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java
index d011c39799..254127e734 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java
@@ -25,30 +25,6 @@
*
* * Usage configuration rules for the service. - * - * NOTE: Under development. - * - * - * Use this rule to configure unregistered calls for the service. Unregistered - * calls are calls that do not contain consumer project identity. - * (Example: calls that do not contain an API key). - * By default, API methods do not allow unregistered calls, and each method call - * must be identified by a consumer project identity. Use this rule to - * allow/disallow unregistered calls. - * - * Example of an API that wants to allow unregistered calls for entire service. - * - * usage: - * rules: - * - selector: "*" - * allow_unregistered_calls: true - * - * Example of a method that wants to allow unregistered calls. - * - * usage: - * rules: - * - selector: "google.example.library.v1.LibraryService.CreateBook" - * allow_unregistered_calls: true ** * Protobuf type {@code google.api.UsageRule} @@ -159,8 +135,12 @@ public com.google.protobuf.ByteString getSelectorBytes() { * * *
- * If true, the selected method allows unregistered calls, e.g. calls
- * that don't identify any user or application.
+ * Use this rule to configure unregistered calls for the service. Unregistered
+ * calls are calls that do not contain consumer project identity.
+ * (Example: calls that do not contain an API key).
+ *
+ * WARNING: By default, API methods do not allow unregistered calls, and each
+ * method call must be identified by a consumer project identity.
*
*
* bool allow_unregistered_calls = 2;
@@ -375,30 +355,6 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
*
*
* Usage configuration rules for the service.
- *
- * NOTE: Under development.
- *
- *
- * Use this rule to configure unregistered calls for the service. Unregistered
- * calls are calls that do not contain consumer project identity.
- * (Example: calls that do not contain an API key).
- * By default, API methods do not allow unregistered calls, and each method call
- * must be identified by a consumer project identity. Use this rule to
- * allow/disallow unregistered calls.
- *
- * Example of an API that wants to allow unregistered calls for entire service.
- *
- * usage:
- * rules:
- * - selector: "*"
- * allow_unregistered_calls: true
- *
- * Example of a method that wants to allow unregistered calls.
- *
- * usage:
- * rules:
- * - selector: "google.example.library.v1.LibraryService.CreateBook"
- * allow_unregistered_calls: true
*
*
* Protobuf type {@code google.api.UsageRule}
@@ -701,8 +657,12 @@ public Builder setSelectorBytes(com.google.protobuf.ByteString value) {
*
*
*
- * If true, the selected method allows unregistered calls, e.g. calls
- * that don't identify any user or application.
+ * Use this rule to configure unregistered calls for the service. Unregistered
+ * calls are calls that do not contain consumer project identity.
+ * (Example: calls that do not contain an API key).
+ *
+ * WARNING: By default, API methods do not allow unregistered calls, and each
+ * method call must be identified by a consumer project identity.
*
*
* bool allow_unregistered_calls = 2;
@@ -718,8 +678,12 @@ public boolean getAllowUnregisteredCalls() {
*
*
*
- * If true, the selected method allows unregistered calls, e.g. calls
- * that don't identify any user or application.
+ * Use this rule to configure unregistered calls for the service. Unregistered
+ * calls are calls that do not contain consumer project identity.
+ * (Example: calls that do not contain an API key).
+ *
+ * WARNING: By default, API methods do not allow unregistered calls, and each
+ * method call must be identified by a consumer project identity.
*
*
* bool allow_unregistered_calls = 2;
@@ -739,8 +703,12 @@ public Builder setAllowUnregisteredCalls(boolean value) {
*
*
*
- * If true, the selected method allows unregistered calls, e.g. calls
- * that don't identify any user or application.
+ * Use this rule to configure unregistered calls for the service. Unregistered
+ * calls are calls that do not contain consumer project identity.
+ * (Example: calls that do not contain an API key).
+ *
+ * WARNING: By default, API methods do not allow unregistered calls, and each
+ * method call must be identified by a consumer project identity.
*
*
* bool allow_unregistered_calls = 2;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java
index 71a6dedd1e..81fae159d8 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java
@@ -64,8 +64,12 @@ public interface UsageRuleOrBuilder
*
*
*
- * If true, the selected method allows unregistered calls, e.g. calls
- * that don't identify any user or application.
+ * Use this rule to configure unregistered calls for the service. Unregistered
+ * calls are calls that do not contain consumer project identity.
+ * (Example: calls that do not contain an API key).
+ *
+ * WARNING: By default, API methods do not allow unregistered calls, and each
+ * method call must be identified by a consumer project identity.
*
*
* bool allow_unregistered_calls = 2;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/BadRequest.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/BadRequest.java
index 13c627c6d5..e9801c259c 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/BadRequest.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/BadRequest.java
@@ -102,17 +102,17 @@ public interface FieldViolationOrBuilder
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -151,17 +151,17 @@ public interface FieldViolationOrBuilder
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -360,17 +360,17 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -420,17 +420,17 @@ public java.lang.String getField() {
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -1058,17 +1058,17 @@ public Builder mergeFrom(
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -1117,17 +1117,17 @@ public java.lang.String getField() {
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -1176,17 +1176,17 @@ public com.google.protobuf.ByteString getFieldBytes() {
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -1234,17 +1234,17 @@ public Builder setField(java.lang.String value) {
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
@@ -1288,17 +1288,17 @@ public Builder clearField() {
* In this example, in proto `field` could take one of the following values:
*
* * `full_name` for a violation in the `full_name` value
- * * `email_addresses[1].email` for a violation in the `email` field of the
+ * * `email_addresses[0].email` for a violation in the `email` field of the
* first `email_addresses` message
- * * `email_addresses[3].type[2]` for a violation in the second `type`
+ * * `email_addresses[2].type[1]` for a violation in the second `type`
* value in the third `email_addresses` message.
*
* In JSON, the same values are represented as:
*
* * `fullName` for a violation in the `fullName` value
- * * `emailAddresses[1].email` for a violation in the `email` field of the
+ * * `emailAddresses[0].email` for a violation in the `email` field of the
* first `emailAddresses` message
- * * `emailAddresses[3].type[2]` for a violation in the second `type`
+ * * `emailAddresses[2].type[1]` for a violation in the second `type`
* value in the third `emailAddresses` message.
*
*
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/StatusProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/StatusProto.java
index 1b4d32b103..681fbea06d 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/StatusProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/StatusProto.java
@@ -59,9 +59,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\006Status\022\014\n"
+ "\004code\030\001 \001(\005\022\017\n"
+ "\007message\030\002 \001(\t\022%\n"
- + "\007details\030\003 \003(\0132\024.google.protobuf.AnyBa\n"
+ + "\007details\030\003 \003(\0132\024.google.protobuf.AnyB^\n"
+ "\016com.google.rpcB\013StatusProtoP\001Z7google.golang.org/gen"
- + "proto/googleapis/rpc/status;status\370\001\001\242\002\003RPCb\006proto3"
+ + "proto/googleapis/rpc/status;status\242\002\003RPCb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContext.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContext.java
index 2dc5a7f15e..6e2b75bee2 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContext.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContext.java
@@ -5817,6 +5817,38 @@ java.lang.String getHeadersOrDefault(
* .google.rpc.context.AttributeContext.Auth auth = 13;
*/
com.google.rpc.context.AttributeContext.AuthOrBuilder getAuthOrBuilder();
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return The origin.
+ */
+ java.lang.String getOrigin();
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return The bytes for origin.
+ */
+ com.google.protobuf.ByteString getOriginBytes();
}
/**
@@ -5860,6 +5892,7 @@ private Request() {
query_ = "";
protocol_ = "";
reason_ = "";
+ origin_ = "";
}
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
@@ -6570,6 +6603,65 @@ public com.google.rpc.context.AttributeContext.AuthOrBuilder getAuthOrBuilder()
: auth_;
}
+ public static final int ORIGIN_FIELD_NUMBER = 14;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object origin_ = "";
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return The origin.
+ */
+ @java.lang.Override
+ public java.lang.String getOrigin() {
+ java.lang.Object ref = origin_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ origin_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return The bytes for origin.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getOriginBytes() {
+ java.lang.Object ref = origin_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ origin_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -6619,6 +6711,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000002) != 0)) {
output.writeMessage(13, getAuth());
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(origin_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 14, origin_);
+ }
getUnknownFields().writeTo(output);
}
@@ -6671,6 +6766,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000002) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getAuth());
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(origin_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(14, origin_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -6705,6 +6803,7 @@ public boolean equals(final java.lang.Object obj) {
if (hasAuth()) {
if (!getAuth().equals(other.getAuth())) return false;
}
+ if (!getOrigin().equals(other.getOrigin())) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -6746,6 +6845,8 @@ public int hashCode() {
hash = (37 * hash) + AUTH_FIELD_NUMBER;
hash = (53 * hash) + getAuth().hashCode();
}
+ hash = (37 * hash) + ORIGIN_FIELD_NUMBER;
+ hash = (53 * hash) + getOrigin().hashCode();
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -6940,6 +7041,7 @@ public Builder clear() {
authBuilder_.dispose();
authBuilder_ = null;
}
+ origin_ = "";
return this;
}
@@ -7016,6 +7118,9 @@ private void buildPartial0(com.google.rpc.context.AttributeContext.Request resul
result.auth_ = authBuilder_ == null ? auth_ : authBuilder_.build();
to_bitField0_ |= 0x00000002;
}
+ if (((from_bitField0_ & 0x00001000) != 0)) {
+ result.origin_ = origin_;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -7083,6 +7188,11 @@ public Builder mergeFrom(com.google.rpc.context.AttributeContext.Request other)
if (other.hasAuth()) {
mergeAuth(other.getAuth());
}
+ if (!other.getOrigin().isEmpty()) {
+ origin_ = other.origin_;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -7187,6 +7297,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000800;
break;
} // case 106
+ case 114:
+ {
+ origin_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00001000;
+ break;
+ } // case 114
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -8775,6 +8891,132 @@ public com.google.rpc.context.AttributeContext.AuthOrBuilder getAuthOrBuilder()
return authBuilder_;
}
+ private java.lang.Object origin_ = "";
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return The origin.
+ */
+ public java.lang.String getOrigin() {
+ java.lang.Object ref = origin_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ origin_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return The bytes for origin.
+ */
+ public com.google.protobuf.ByteString getOriginBytes() {
+ java.lang.Object ref = origin_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ origin_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @param value The origin to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOrigin(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ origin_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOrigin() {
+ origin_ = getDefaultInstance().getOrigin();
+ bitField0_ = (bitField0_ & ~0x00001000);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The values from Origin header from the HTTP request, such as + * "https://console.cloud.google.com". Modern browsers can only have one + * origin. Special browsers and/or HTTP clients may require multiple + * origins. + *+ * + *
string origin = 14;
+ *
+ * @param value The bytes for origin to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOriginBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ origin_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.rpc.context.AttributeContext.Request)
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContextProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContextProto.java
index afbf3e2bf6..ccde945095 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContextProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AttributeContextProto.java
@@ -101,7 +101,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "*google/rpc/context/attribute_context.p"
+ "roto\022\022google.rpc.context\032\031google/protobu"
+ "f/any.proto\032\036google/protobuf/duration.pr"
- + "oto\032\034google/protobuf/struct.proto\032\037google/protobuf/timestamp.proto\"\203\020\n"
+ + "oto\032\034google/protobuf/struct.proto\032\037google/protobuf/timestamp.proto\"\223\020\n"
+ "\020AttributeContext\0229\n"
+ "\006origin\030\007 \001(\0132).google.rpc.context.AttributeContext.Peer\0229\n"
+ "\006source\030\001 \001(\0132).google.rpc.context.AttributeContext.Peer\022>\n"
@@ -132,7 +132,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\taudiences\030\002 \003(\t\022\021\n"
+ "\tpresenter\030\003 \001(\t\022\'\n"
+ "\006claims\030\004 \001(\0132\027.google.protobuf.Struct\022\025\n\r"
- + "access_levels\030\005 \003(\t\032\357\002\n"
+ + "access_levels\030\005 \003(\t\032\377\002\n"
+ "\007Request\022\n\n"
+ "\002id\030\001 \001(\t\022\016\n"
+ "\006method\030\002 \001(\t\022J\n"
@@ -148,15 +148,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\010protocol\030\013 \001(\t\022\016\n"
+ "\006reason\030\014 \001(\t\0227\n"
+ "\004auth\030\r"
- + " \001(\0132).google.rpc.context.AttributeContext.Auth\032.\n"
+ + " \001(\0132).google.rpc.context.AttributeContext.Auth\022\016\n"
+ + "\006origin\030\016 \001(\t\032.\n"
+ "\014HeadersEntry\022\013\n"
+ "\003key\030\001 \001(\t\022\r\n"
+ "\005value\030\002 \001(\t:\0028\001\032\201\002\n"
+ "\010Response\022\014\n"
+ "\004code\030\001 \001(\003\022\014\n"
+ "\004size\030\002 \001(\003\022K\n"
- + "\007headers\030\003 \003(\0132:.google.rpc"
- + ".context.AttributeContext.Response.HeadersEntry\022(\n"
+ + "\007headers\030\003 "
+ + "\003(\0132:.google.rpc.context.AttributeContext.Response.HeadersEntry\022(\n"
+ "\004time\030\004 \001(\0132\032.google.protobuf.Timestamp\0222\n"
+ "\017backend_latency\030\005 \001(\0132\031.google.protobuf.Duration\032.\n"
+ "\014HeadersEntry\022\013\n"
@@ -166,11 +167,11 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\007service\030\001 \001(\t\022\014\n"
+ "\004name\030\002 \001(\t\022\014\n"
+ "\004type\030\003 \001(\t\022I\n"
- + "\006labels\030\004 \003(\01329.google.rpc.con"
- + "text.AttributeContext.Resource.LabelsEntry\022\013\n"
+ + "\006labels\030\004 \003(\0132"
+ + "9.google.rpc.context.AttributeContext.Resource.LabelsEntry\022\013\n"
+ "\003uid\030\005 \001(\t\022S\n"
- + "\013annotations\030\006 \003(\0132>.g"
- + "oogle.rpc.context.AttributeContext.Resource.AnnotationsEntry\022\024\n"
+ + "\013annotations\030\006"
+ + " \003(\0132>.google.rpc.context.AttributeContext.Resource.AnnotationsEntry\022\024\n"
+ "\014display_name\030\007 \001(\t\022/\n"
+ "\013create_time\030\010 \001(\0132\032.google.protobuf.Timestamp\022/\n"
+ "\013update_time\030\t \001(\0132\032.google.protobuf.Timestamp\022/\n"
@@ -183,9 +184,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\005value\030\002 \001(\t:\0028\001\0322\n"
+ "\020AnnotationsEntry\022\013\n"
+ "\003key\030\001 \001(\t\022\r\n"
- + "\005value\030\002 \001(\t:\0028\001B\213\001\n"
- + "\026com.google.rpc.contextB\025AttributeContextProtoP\001ZUgoogle.golang.org/genproto"
- + "/googleapis/rpc/context/attribute_context;attribute_context\370\001\001b\006proto3"
+ + "\005value\030\002 \001(\t:\0028\001B\210\001\n"
+ + "\026com.google.rpc.contextB\025AttributeContextProtoP\001ZUgoogle.gol"
+ + "ang.org/genproto/googleapis/rpc/context/attribute_context;attribute_contextb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -261,6 +262,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Protocol",
"Reason",
"Auth",
+ "Origin",
});
internal_static_google_rpc_context_AttributeContext_Request_HeadersEntry_descriptor =
internal_static_google_rpc_context_AttributeContext_Request_descriptor.getNestedType(0);
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Color.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Color.java
index d60fd6f8a6..369270781c 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Color.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Color.java
@@ -25,22 +25,22 @@
*
*
* Represents a color in the RGBA color space. This representation is designed
- * for simplicity of conversion to/from color representations in various
+ * for simplicity of conversion to and from color representations in various
* languages over compactness. For example, the fields of this representation
* can be trivially provided to the constructor of `java.awt.Color` in Java; it
* can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
* method in iOS; and, with just a little work, it can be easily formatted into
* a CSS `rgba()` string in JavaScript.
*
- * This reference page doesn't carry information about the absolute color
- * space
- * that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
- * DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color
+ * This reference page doesn't have information about the absolute color
+ * space that should be used to interpret the RGB value—for example, sRGB,
+ * Adobe RGB,
+ * DCI-P3, and BT.2020. By default, applications should assume the sRGB color
* space.
*
- * When color equality needs to be decided, implementations, unless
- * documented otherwise, treat two colors as equal if all their red,
- * green, blue, and alpha values each differ by at most 1e-5.
+ * When color equality needs to be decided, implementations, unless documented
+ * otherwise, treat two colors as equal if all their red, green, blue, and alpha
+ * values each differ by at most `1e-5`.
*
* Example (Java):
*
@@ -523,22 +523,22 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
*
*
* Represents a color in the RGBA color space. This representation is designed
- * for simplicity of conversion to/from color representations in various
+ * for simplicity of conversion to and from color representations in various
* languages over compactness. For example, the fields of this representation
* can be trivially provided to the constructor of `java.awt.Color` in Java; it
* can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
* method in iOS; and, with just a little work, it can be easily formatted into
* a CSS `rgba()` string in JavaScript.
*
- * This reference page doesn't carry information about the absolute color
- * space
- * that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
- * DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color
+ * This reference page doesn't have information about the absolute color
+ * space that should be used to interpret the RGB value—for example, sRGB,
+ * Adobe RGB,
+ * DCI-P3, and BT.2020. By default, applications should assume the sRGB color
* space.
*
- * When color equality needs to be decided, implementations, unless
- * documented otherwise, treat two colors as equal if all their red,
- * green, blue, and alpha values each differ by at most 1e-5.
+ * When color equality needs to be decided, implementations, unless documented
+ * otherwise, treat two colors as equal if all their red, green, blue, and alpha
+ * values each differ by at most `1e-5`.
*
* Example (Java):
*
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/ColorProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/ColorProto.java
index b80ef0003d..92b32047c8 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/ColorProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/ColorProto.java
@@ -59,10 +59,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\003red\030\001 \001(\002\022\r\n"
+ "\005green\030\002 \001(\002\022\014\n"
+ "\004blue\030\003 \001(\002\022*\n"
- + "\005alpha\030\004 \001(\0132\033.google.protobuf.FloatValueB`\n"
+ + "\005alpha\030\004 \001(\0132\033.google.protobuf.FloatValueB]\n"
+ "\017com.google.typeB\n"
+ "ColorProtoP\001Z6google.golang.org/genproto/googleapis/ty"
- + "pe/color;color\370\001\001\242\002\003GTPb\006proto3"
+ + "pe/color;color\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Date.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Date.java
index 1c04a154b2..ae403fc9e7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Date.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Date.java
@@ -29,14 +29,17 @@
* date is relative to the Gregorian Calendar. This can represent one of the
* following:
*
- * * A full date, with non-zero year, month, and day values
- * * A month and day value, with a zero year, such as an anniversary
- * * A year on its own, with zero month and day values
- * * A year and month value, with a zero day, such as a credit card expiration
- * date
+ * * A full date, with non-zero year, month, and day values.
+ * * A month and day, with a zero year (for example, an anniversary).
+ * * A year on its own, with a zero month and a zero day.
+ * * A year and month, with a zero day (for example, a credit card expiration
+ * date).
*
- * Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and
- * `google.protobuf.Timestamp`.
+ * Related types:
+ *
+ * * [google.type.TimeOfDay][google.type.TimeOfDay]
+ * * [google.type.DateTime][google.type.DateTime]
+ * * [google.protobuf.Timestamp][google.protobuf.Timestamp]
*
*
* Protobuf type {@code google.type.Date}
@@ -323,14 +326,17 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
* date is relative to the Gregorian Calendar. This can represent one of the
* following:
*
- * * A full date, with non-zero year, month, and day values
- * * A month and day value, with a zero year, such as an anniversary
- * * A year on its own, with zero month and day values
- * * A year and month value, with a zero day, such as a credit card expiration
- * date
+ * * A full date, with non-zero year, month, and day values.
+ * * A month and day, with a zero year (for example, an anniversary).
+ * * A year on its own, with a zero month and a zero day.
+ * * A year and month, with a zero day (for example, a credit card expiration
+ * date).
+ *
+ * Related types:
*
- * Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and
- * `google.protobuf.Timestamp`.
+ * * [google.type.TimeOfDay][google.type.TimeOfDay]
+ * * [google.type.DateTime][google.type.DateTime]
+ * * [google.protobuf.Timestamp][google.protobuf.Timestamp]
*
*
* Protobuf type {@code google.type.Date}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateProto.java
index 834120366c..b6534a15fd 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateProto.java
@@ -58,9 +58,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\004Date\022\014\n"
+ "\004year\030\001 \001(\005\022\r\n"
+ "\005month\030\002 \001(\005\022\013\n"
- + "\003day\030\003 \001(\005B]\n"
+ + "\003day\030\003 \001(\005BZ\n"
+ "\017com.google.typeB\tDateProtoP\001Z4google.golang.org/genproto/googleapis/t"
- + "ype/date;date\370\001\001\242\002\003GTPb\006proto3"
+ + "ype/date;date\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTime.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTime.java
index 7ced5f12ae..b6d30f7b73 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTime.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTime.java
@@ -37,8 +37,8 @@
*
* The date is relative to the Proleptic Gregorian Calendar.
*
- * If year is 0, the DateTime is considered not to have a specific year. month
- * and day must have valid, non-zero values.
+ * If year, month, or day are 0, the DateTime is considered not to have a
+ * specific year, month, or day respectively.
*
* This type may also be used to represent a physical time if all the date and
* time fields are set and either case of the `time_offset` oneof is set.
@@ -165,7 +165,8 @@ public int getYear() {
*
*
*
- * Required. Month of year. Must be from 1 to 12.
+ * Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
+ * datetime without a month.
*
*
* int32 month = 2;
@@ -184,8 +185,8 @@ public int getMonth() {
*
*
*
- * Required. Day of month. Must be from 1 to 31 and valid for the year and
- * month.
+ * Optional. Day of month. Must be from 1 to 31 and valid for the year and
+ * month, or 0 if specifying a datetime without a day.
*
*
* int32 day = 3;
@@ -204,9 +205,9 @@ public int getDay() {
*
*
*
- * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API
- * may choose to allow the value "24:00:00" for scenarios like business
- * closing time.
+ * Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults
+ * to 0 (midnight). An API may choose to allow the value "24:00:00" for
+ * scenarios like business closing time.
*
*
* int32 hours = 4;
@@ -225,7 +226,7 @@ public int getHours() {
*
*
*
- * Required. Minutes of hour of day. Must be from 0 to 59.
+ * Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
*
*
* int32 minutes = 5;
@@ -244,8 +245,8 @@ public int getMinutes() {
*
*
*
- * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An
- * API may allow the value 60 if it allows leap-seconds.
+ * Optional. Seconds of minutes of the time. Must normally be from 0 to 59,
+ * defaults to 0. An API may allow the value 60 if it allows leap-seconds.
*
*
* int32 seconds = 6;
@@ -264,8 +265,8 @@ public int getSeconds() {
*
*
*
- * Required. Fractions of seconds in nanoseconds. Must be from 0 to
- * 999,999,999.
+ * Optional. Fractions of seconds in nanoseconds. Must be from 0 to
+ * 999,999,999, defaults to 0.
*
*
* int32 nanos = 7;
@@ -659,8 +660,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
*
* The date is relative to the Proleptic Gregorian Calendar.
*
- * If year is 0, the DateTime is considered not to have a specific year. month
- * and day must have valid, non-zero values.
+ * If year, month, or day are 0, the DateTime is considered not to have a
+ * specific year, month, or day respectively.
*
* This type may also be used to represent a physical time if all the date and
* time fields are set and either case of the `time_offset` oneof is set.
@@ -1014,7 +1015,8 @@ public Builder clearYear() {
*
*
*
- * Required. Month of year. Must be from 1 to 12.
+ * Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
+ * datetime without a month.
*
*
* int32 month = 2;
@@ -1030,7 +1032,8 @@ public int getMonth() {
*
*
*
- * Required. Month of year. Must be from 1 to 12.
+ * Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
+ * datetime without a month.
*
*
* int32 month = 2;
@@ -1050,7 +1053,8 @@ public Builder setMonth(int value) {
*
*
*
- * Required. Month of year. Must be from 1 to 12.
+ * Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
+ * datetime without a month.
*
*
* int32 month = 2;
@@ -1070,8 +1074,8 @@ public Builder clearMonth() {
*
*
*
- * Required. Day of month. Must be from 1 to 31 and valid for the year and
- * month.
+ * Optional. Day of month. Must be from 1 to 31 and valid for the year and
+ * month, or 0 if specifying a datetime without a day.
*
*
* int32 day = 3;
@@ -1087,8 +1091,8 @@ public int getDay() {
*
*
*
- * Required. Day of month. Must be from 1 to 31 and valid for the year and
- * month.
+ * Optional. Day of month. Must be from 1 to 31 and valid for the year and
+ * month, or 0 if specifying a datetime without a day.
*
*
* int32 day = 3;
@@ -1108,8 +1112,8 @@ public Builder setDay(int value) {
*
*
*
- * Required. Day of month. Must be from 1 to 31 and valid for the year and
- * month.
+ * Optional. Day of month. Must be from 1 to 31 and valid for the year and
+ * month, or 0 if specifying a datetime without a day.
*
*
* int32 day = 3;
@@ -1129,9 +1133,9 @@ public Builder clearDay() {
*
*
*
- * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API
- * may choose to allow the value "24:00:00" for scenarios like business
- * closing time.
+ * Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults
+ * to 0 (midnight). An API may choose to allow the value "24:00:00" for
+ * scenarios like business closing time.
*
*
* int32 hours = 4;
@@ -1147,9 +1151,9 @@ public int getHours() {
*
*
*
- * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API
- * may choose to allow the value "24:00:00" for scenarios like business
- * closing time.
+ * Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults
+ * to 0 (midnight). An API may choose to allow the value "24:00:00" for
+ * scenarios like business closing time.
*
*
* int32 hours = 4;
@@ -1169,9 +1173,9 @@ public Builder setHours(int value) {
*
*
*
- * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API
- * may choose to allow the value "24:00:00" for scenarios like business
- * closing time.
+ * Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults
+ * to 0 (midnight). An API may choose to allow the value "24:00:00" for
+ * scenarios like business closing time.
*
*
* int32 hours = 4;
@@ -1191,7 +1195,7 @@ public Builder clearHours() {
*
*
*
- * Required. Minutes of hour of day. Must be from 0 to 59.
+ * Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
*
*
* int32 minutes = 5;
@@ -1207,7 +1211,7 @@ public int getMinutes() {
*
*
*
- * Required. Minutes of hour of day. Must be from 0 to 59.
+ * Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
*
*
* int32 minutes = 5;
@@ -1227,7 +1231,7 @@ public Builder setMinutes(int value) {
*
*
*
- * Required. Minutes of hour of day. Must be from 0 to 59.
+ * Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
*
*
* int32 minutes = 5;
@@ -1247,8 +1251,8 @@ public Builder clearMinutes() {
*
*
*
- * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An
- * API may allow the value 60 if it allows leap-seconds.
+ * Optional. Seconds of minutes of the time. Must normally be from 0 to 59,
+ * defaults to 0. An API may allow the value 60 if it allows leap-seconds.
*
*
* int32 seconds = 6;
@@ -1264,8 +1268,8 @@ public int getSeconds() {
*
*
*
- * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An
- * API may allow the value 60 if it allows leap-seconds.
+ * Optional. Seconds of minutes of the time. Must normally be from 0 to 59,
+ * defaults to 0. An API may allow the value 60 if it allows leap-seconds.
*
*
* int32 seconds = 6;
@@ -1285,8 +1289,8 @@ public Builder setSeconds(int value) {
*
*
*
- * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An
- * API may allow the value 60 if it allows leap-seconds.
+ * Optional. Seconds of minutes of the time. Must normally be from 0 to 59,
+ * defaults to 0. An API may allow the value 60 if it allows leap-seconds.
*
*
* int32 seconds = 6;
@@ -1306,8 +1310,8 @@ public Builder clearSeconds() {
*
*
*
- * Required. Fractions of seconds in nanoseconds. Must be from 0 to
- * 999,999,999.
+ * Optional. Fractions of seconds in nanoseconds. Must be from 0 to
+ * 999,999,999, defaults to 0.
*
*
* int32 nanos = 7;
@@ -1323,8 +1327,8 @@ public int getNanos() {
*
*
*
- * Required. Fractions of seconds in nanoseconds. Must be from 0 to
- * 999,999,999.
+ * Optional. Fractions of seconds in nanoseconds. Must be from 0 to
+ * 999,999,999, defaults to 0.
*
*
* int32 nanos = 7;
@@ -1344,8 +1348,8 @@ public Builder setNanos(int value) {
*
*
*
- * Required. Fractions of seconds in nanoseconds. Must be from 0 to
- * 999,999,999.
+ * Optional. Fractions of seconds in nanoseconds. Must be from 0 to
+ * 999,999,999, defaults to 0.
*
*
* int32 nanos = 7;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeOrBuilder.java
index 8de4a99ea8..fa884f156a 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeOrBuilder.java
@@ -44,7 +44,8 @@ public interface DateTimeOrBuilder
*
*
*
- * Required. Month of year. Must be from 1 to 12.
+ * Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
+ * datetime without a month.
*
*
* int32 month = 2;
@@ -57,8 +58,8 @@ public interface DateTimeOrBuilder
*
*
*
- * Required. Day of month. Must be from 1 to 31 and valid for the year and
- * month.
+ * Optional. Day of month. Must be from 1 to 31 and valid for the year and
+ * month, or 0 if specifying a datetime without a day.
*
*
* int32 day = 3;
@@ -71,9 +72,9 @@ public interface DateTimeOrBuilder
*
*
*
- * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API
- * may choose to allow the value "24:00:00" for scenarios like business
- * closing time.
+ * Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults
+ * to 0 (midnight). An API may choose to allow the value "24:00:00" for
+ * scenarios like business closing time.
*
*
* int32 hours = 4;
@@ -86,7 +87,7 @@ public interface DateTimeOrBuilder
*
*
*
- * Required. Minutes of hour of day. Must be from 0 to 59.
+ * Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
*
*
* int32 minutes = 5;
@@ -99,8 +100,8 @@ public interface DateTimeOrBuilder
*
*
*
- * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An
- * API may allow the value 60 if it allows leap-seconds.
+ * Optional. Seconds of minutes of the time. Must normally be from 0 to 59,
+ * defaults to 0. An API may allow the value 60 if it allows leap-seconds.
*
*
* int32 seconds = 6;
@@ -113,8 +114,8 @@ public interface DateTimeOrBuilder
*
*
*
- * Required. Fractions of seconds in nanoseconds. Must be from 0 to
- * 999,999,999.
+ * Optional. Fractions of seconds in nanoseconds. Must be from 0 to
+ * 999,999,999, defaults to 0.
*
*
* int32 nanos = 7;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeProto.java
index 098f3e4b96..0ded4be2a1 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DateTimeProto.java
@@ -72,10 +72,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\013time_offset\"\'\n"
+ "\010TimeZone\022\n\n"
+ "\002id\030\001 \001(\t\022\017\n"
- + "\007version\030\002 \001(\tBi\n"
+ + "\007version\030\002 \001(\tBf\n"
+ "\017com.google.typeB\r"
- + "DateTimeProtoP\001Z
* A representation of a decimal value, such as 2.5. Clients may convert values
- * into language-native decimal formats, such as Java's [BigDecimal][] or
- * Python's [decimal.Decimal][].
- *
- * [BigDecimal]:
- * https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html
- * [decimal.Decimal]: https://docs.python.org/3/library/decimal.html
+ * into language-native decimal formats, such as Java's
+ * [BigDecimal](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html)
+ * or Python's
+ * [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
*
*
* Protobuf type {@code google.type.Decimal}
@@ -563,7 +561,7 @@ public Builder mergeFrom(
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -577,12 +575,13 @@ public Builder mergeFrom(
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -594,7 +593,7 @@ public Builder mergeFrom(
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
@@ -645,7 +644,7 @@ public java.lang.String getValue() {
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -659,12 +658,13 @@ public java.lang.String getValue() {
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -676,7 +676,7 @@ public java.lang.String getValue() {
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
@@ -727,7 +727,7 @@ public com.google.protobuf.ByteString getValueBytes() {
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -741,12 +741,13 @@ public com.google.protobuf.ByteString getValueBytes() {
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -758,7 +759,7 @@ public com.google.protobuf.ByteString getValueBytes() {
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
@@ -808,7 +809,7 @@ public Builder setValue(java.lang.String value) {
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -822,12 +823,13 @@ public Builder setValue(java.lang.String value) {
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -839,7 +841,7 @@ public Builder setValue(java.lang.String value) {
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
@@ -885,7 +887,7 @@ public Builder clearValue() {
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -899,12 +901,13 @@ public Builder clearValue() {
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -916,7 +919,7 @@ public Builder clearValue() {
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalOrBuilder.java
index d3645b66e5..6252909d7b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalOrBuilder.java
@@ -35,7 +35,7 @@ public interface DecimalOrBuilder
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -49,12 +49,13 @@ public interface DecimalOrBuilder
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -66,7 +67,7 @@ public interface DecimalOrBuilder
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
@@ -107,7 +108,7 @@ public interface DecimalOrBuilder
* The string representation consists of an optional sign, `+` (`U+002B`)
* or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
* ("the integer"), optionally followed by a fraction, optionally followed
- * by an exponent.
+ * by an exponent. An empty string **should** be interpreted as `0`.
*
* The fraction consists of a decimal point followed by zero or more decimal
* digits. The string must contain at least one digit in either the integer
@@ -121,12 +122,13 @@ public interface DecimalOrBuilder
*
* - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
* - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ * - Coercing the exponent character to upper-case, with explicit sign
+ * (`2.5e8` -> `2.5E+8`).
+ * - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
*
* Services **may** perform additional normalization based on its own needs
* and the internal decimal implementation selected, such as shifting the
- * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ * decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
* Additionally, services **may** preserve trailing zeroes in the fraction
* to indicate increased precision, but are not required to do so.
*
@@ -138,7 +140,7 @@ public interface DecimalOrBuilder
* The ENBF grammar is:
*
* DecimalString =
- * [Sign] Significand [Exponent];
+ * '' | [Sign] Significand [Exponent];
*
* Sign = '+' | '-';
*
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalProto.java
index b659de2354..7ccb5837cf 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/DecimalProto.java
@@ -54,10 +54,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
static {
java.lang.String[] descriptorData = {
"\n\031google/type/decimal.proto\022\013google.type"
- + "\"\030\n\007Decimal\022\r\n\005value\030\001 \001(\tBf\n\017com.google"
+ + "\"\030\n\007Decimal\022\r\n\005value\030\001 \001(\tBc\n\017com.google"
+ ".typeB\014DecimalProtoP\001Z:google.golang.org"
+ "/genproto/googleapis/type/decimal;decima"
- + "l\370\001\001\242\002\003GTPb\006proto3"
+ + "l\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/IntervalProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/IntervalProto.java
index a544688a67..4be6839768 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/IntervalProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/IntervalProto.java
@@ -57,10 +57,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "e\032\037google/protobuf/timestamp.proto\"h\n\010In"
+ "terval\022.\n\nstart_time\030\001 \001(\0132\032.google.prot"
+ "obuf.Timestamp\022,\n\010end_time\030\002 \001(\0132\032.googl"
- + "e.protobuf.TimestampBi\n\017com.google.typeB"
+ + "e.protobuf.TimestampBf\n\017com.google.typeB"
+ "\rIntervalProtoP\001Z
* An object that represents a latitude/longitude pair. This is expressed as a
* pair of doubles to represent degrees latitude and degrees longitude. Unless
- * specified otherwise, this must conform to the
- * <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
- * standard</a>. Values must be within normalized ranges.
+ * specified otherwise, this object must conform to the
+ * <a href="https://en.wikipedia.org/wiki/World_Geodetic_System#1984_version">
+ * WGS84 standard</a>. Values must be within normalized ranges.
*
*
* Protobuf type {@code google.type.LatLng}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LatLngProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LatLngProto.java
index e0b02c31f7..c37fb97aea 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LatLngProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LatLngProto.java
@@ -55,9 +55,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
java.lang.String[] descriptorData = {
"\n\030google/type/latlng.proto\022\013google.type\""
+ "-\n\006LatLng\022\020\n\010latitude\030\001 \001(\001\022\021\n\tlongitude"
- + "\030\002 \001(\001Bc\n\017com.google.typeB\013LatLngProtoP\001"
+ + "\030\002 \001(\001B`\n\017com.google.typeB\013LatLngProtoP\001"
+ "Z8google.golang.org/genproto/googleapis/"
- + "type/latlng;latlng\370\001\001\242\002\003GTPb\006proto3"
+ + "type/latlng;latlng\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedText.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedText.java
index 677c731de9..0fa52a80d9 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedText.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedText.java
@@ -78,7 +78,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -102,7 +103,8 @@ public java.lang.String getText() {
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -516,7 +518,8 @@ public Builder mergeFrom(
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -539,7 +542,8 @@ public java.lang.String getText() {
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -562,7 +566,8 @@ public com.google.protobuf.ByteString getTextBytes() {
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -584,7 +589,8 @@ public Builder setText(java.lang.String value) {
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -602,7 +608,8 @@ public Builder clearText() {
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextOrBuilder.java
index 4260bcd2d7..5a624ceb9f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextOrBuilder.java
@@ -30,7 +30,8 @@ public interface LocalizedTextOrBuilder
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
@@ -43,7 +44,8 @@ public interface LocalizedTextOrBuilder
*
*
*
- * Localized string in the language corresponding to `language_code' below.
+ * Localized string in the language corresponding to
+ * [language_code][google.type.LocalizedText.language_code] below.
*
*
* string text = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextProto.java
index 7f3c40fbeb..0ae3eb0bd1 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/LocalizedTextProto.java
@@ -55,10 +55,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
java.lang.String[] descriptorData = {
"\n google/type/localized_text.proto\022\013goog"
+ "le.type\"4\n\rLocalizedText\022\014\n\004text\030\001 \001(\t\022\025"
- + "\n\rlanguage_code\030\002 \001(\tBz\n\017com.google.type"
+ + "\n\rlanguage_code\030\002 \001(\tBw\n\017com.google.type"
+ "B\022LocalizedTextProtoP\001ZHgoogle.golang.or"
+ "g/genproto/googleapis/type/localized_tex"
- + "t;localized_text\370\001\001\242\002\003GTPb\006proto3"
+ + "t;localized_text\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/MoneyProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/MoneyProto.java
index 74101e52eb..c4ed024732 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/MoneyProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/MoneyProto.java
@@ -55,10 +55,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
java.lang.String[] descriptorData = {
"\n\027google/type/money.proto\022\013google.type\"<"
+ "\n\005Money\022\025\n\rcurrency_code\030\001 \001(\t\022\r\n\005units\030"
- + "\002 \001(\003\022\r\n\005nanos\030\003 \001(\005B`\n\017com.google.typeB"
+ + "\002 \001(\003\022\r\n\005nanos\030\003 \001(\005B]\n\017com.google.typeB"
+ "\nMoneyProtoP\001Z6google.golang.org/genprot"
- + "o/googleapis/type/money;money\370\001\001\242\002\003GTPb\006"
- + "proto3"
+ + "o/googleapis/type/money;money\242\002\003GTPb\006pro"
+ + "to3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumber.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumber.java
index ae69972c2d..3e16261b43 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumber.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumber.java
@@ -137,7 +137,7 @@ public interface ShortCodeOrBuilder
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -151,7 +151,7 @@ public interface ShortCodeOrBuilder
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -168,12 +168,13 @@ public interface ShortCodeOrBuilder
* An object representing a short code, which is a phone number that is
* typically much shorter than regular phone numbers and can be used to
* address messages in MMS and SMS systems, as well as for abbreviated dialing
- * (e.g. "Text 611 to see how many minutes you have remaining on your plan.").
+ * (For example "Text 611 to see how many minutes you have remaining on your
+ * plan.").
*
* Short codes are restricted to a region and are not internationally
* dialable, which means the same short code can exist in different regions,
* with different usage and pricing, even if those regions share the same
- * country calling code (e.g. US and CA).
+ * country calling code (For example: US and CA).
*
*
* Protobuf type {@code google.type.PhoneNumber.ShortCode}
@@ -290,7 +291,7 @@ public com.google.protobuf.ByteString getRegionCodeBytes() {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -315,7 +316,7 @@ public java.lang.String getNumber() {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -510,12 +511,13 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
* An object representing a short code, which is a phone number that is
* typically much shorter than regular phone numbers and can be used to
* address messages in MMS and SMS systems, as well as for abbreviated dialing
- * (e.g. "Text 611 to see how many minutes you have remaining on your plan.").
+ * (For example "Text 611 to see how many minutes you have remaining on your
+ * plan.").
*
* Short codes are restricted to a region and are not internationally
* dialable, which means the same short code can exist in different regions,
* with different usage and pricing, even if those regions share the same
- * country calling code (e.g. US and CA).
+ * country calling code (For example: US and CA).
*
*
* Protobuf type {@code google.type.PhoneNumber.ShortCode}
@@ -813,7 +815,7 @@ public Builder setRegionCodeBytes(com.google.protobuf.ByteString value) {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -837,7 +839,7 @@ public java.lang.String getNumber() {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -861,7 +863,7 @@ public com.google.protobuf.ByteString getNumberBytes() {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -884,7 +886,7 @@ public Builder setNumber(java.lang.String value) {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -903,7 +905,7 @@ public Builder clearNumber() {
*
*
* Required. The short code digits, without a leading plus ('+') or country
- * calling code, e.g. "611".
+ * calling code. For example "611".
*
*
* string number = 2;
@@ -1033,17 +1035,22 @@ public KindCase getKindCase() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1062,17 +1069,22 @@ public boolean hasE164Number() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1104,17 +1116,22 @@ public java.lang.String getE164Number() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1148,7 +1165,7 @@ public com.google.protobuf.ByteString getE164NumberBytes() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -1167,7 +1184,7 @@ public boolean hasShortCode() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -1189,7 +1206,7 @@ public com.google.type.PhoneNumber.ShortCode getShortCode() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -1703,17 +1720,22 @@ public Builder clearKind() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1733,17 +1755,22 @@ public boolean hasE164Number() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1776,17 +1803,22 @@ public java.lang.String getE164Number() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1819,17 +1851,22 @@ public com.google.protobuf.ByteString getE164NumberBytes() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1855,17 +1892,22 @@ public Builder setE164Number(java.lang.String value) {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1889,17 +1931,22 @@ public Builder clearE164Number() {
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -1932,7 +1979,7 @@ public Builder setE164NumberBytes(com.google.protobuf.ByteString value) {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -1951,7 +1998,7 @@ public boolean hasShortCode() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -1980,7 +2027,7 @@ public com.google.type.PhoneNumber.ShortCode getShortCode() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -2006,7 +2053,7 @@ public Builder setShortCode(com.google.type.PhoneNumber.ShortCode value) {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -2029,7 +2076,7 @@ public Builder setShortCode(com.google.type.PhoneNumber.ShortCode.Builder builde
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -2064,7 +2111,7 @@ public Builder mergeShortCode(com.google.type.PhoneNumber.ShortCode value) {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -2093,7 +2140,7 @@ public Builder clearShortCode() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -2109,7 +2156,7 @@ public com.google.type.PhoneNumber.ShortCode.Builder getShortCodeBuilder() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -2133,7 +2180,7 @@ public com.google.type.PhoneNumber.ShortCodeOrBuilder getShortCodeOrBuilder() {
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberOrBuilder.java
index 8f90afe7cf..287214a12f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberOrBuilder.java
@@ -33,17 +33,22 @@ public interface PhoneNumberOrBuilder
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -60,17 +65,22 @@ public interface PhoneNumberOrBuilder
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -87,17 +97,22 @@ public interface PhoneNumberOrBuilder
* The phone number, represented as a leading plus sign ('+'), followed by a
* phone number that uses a relaxed ITU E.164 format consisting of the
* country calling code (1 to 3 digits) and the subscriber number, with no
- * additional spaces or formatting, e.g.:
+ * additional spaces or formatting. For example:
+ *
* - correct: "+15552220123"
- * - incorrect: "+1 (555) 222-01234 x123".
+ *
+ * - incorrect: "+1 (555) 222-01234 x123"
*
* The ITU E.164 format limits the latter to 12 digits, but in practice not
* all countries respect that, so we relax that restriction here.
* National-only numbers are not allowed.
*
* References:
+ *
* - https://www.itu.int/rec/T-REC-E.164-201011-I
+ *
* - https://en.wikipedia.org/wiki/E.164.
+ *
* - https://en.wikipedia.org/wiki/List_of_country_calling_codes
*
*
@@ -114,7 +129,7 @@ public interface PhoneNumberOrBuilder
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -130,7 +145,7 @@ public interface PhoneNumberOrBuilder
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
@@ -146,7 +161,7 @@ public interface PhoneNumberOrBuilder
* A short code.
*
* Reference(s):
- * - https://en.wikipedia.org/wiki/Short_code
+ * - https://wikipedia.org/wiki/Short_code
*
*
* .google.type.PhoneNumber.ShortCode short_code = 2;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberProto.java
index f1ef562dc0..2b9b41eccb 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PhoneNumberProto.java
@@ -62,10 +62,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "(\tH\000\0228\n\nshort_code\030\002 \001(\0132\".google.type.P"
+ "honeNumber.ShortCodeH\000\022\021\n\textension\030\003 \001("
+ "\t\0320\n\tShortCode\022\023\n\013region_code\030\001 \001(\t\022\016\n\006n"
- + "umber\030\002 \001(\tB\006\n\004kindBt\n\017com.google.typeB\020"
+ + "umber\030\002 \001(\tB\006\n\004kindBq\n\017com.google.typeB\020"
+ "PhoneNumberProtoP\001ZDgoogle.golang.org/ge"
+ "nproto/googleapis/type/phone_number;phon"
- + "e_number\370\001\001\242\002\003GTPb\006proto3"
+ + "e_number\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddress.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddress.java
index 6d954aefba..f08c8b93cc 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddress.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddress.java
@@ -24,23 +24,23 @@
*
*
* - * Represents a postal address, e.g. for postal delivery or payments addresses. - * Given a postal address, a postal service can deliver items to a premise, P.O. - * Box or similar. - * It is not intended to model geographical locations (roads, towns, - * mountains). + * Represents a postal address, such as for postal delivery or payments + * addresses. With a postal address, a postal service can deliver items to a + * premise, P.O. box, or similar. A postal address is not intended to model + * geographical locations like roads, towns, or mountains. * - * In typical usage an address would be created via user input or from importing + * In typical usage, an address would be created by user input or from importing * existing data, depending on the type of process. * - * Advice on address input / editing: - * - Use an i18n-ready address widget such as - * https://github.com/google/libaddressinput) + * Advice on address input or editing: + * + * - Use an internationalization-ready address widget such as + * https://github.com/google/libaddressinput. * - Users should not be presented with UI elements for input or editing of * fields outside countries where that field is used. * - * For more guidance on how to use this schema, please see: - * https://support.google.com/business/answer/6397478 + * For more guidance on how to use this schema, see: + * https://support.google.com/business/answer/6397478. ** * Protobuf type {@code google.type.PostalAddress} @@ -126,8 +126,8 @@ public int getRevision() { *
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -154,8 +154,8 @@ public java.lang.String getRegionCode() {
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -262,8 +262,8 @@ public com.google.protobuf.ByteString getLanguageCodeBytes() {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -289,8 +289,8 @@ public java.lang.String getPostalCode() {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -321,9 +321,9 @@ public com.google.protobuf.ByteString getPostalCodeBytes() {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -349,9 +349,9 @@ public java.lang.String getSortingCode() {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -383,10 +383,10 @@ public com.google.protobuf.ByteString getSortingCodeBytes() {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -413,10 +413,10 @@ public java.lang.String getAdministrativeArea() {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -445,10 +445,10 @@ public com.google.protobuf.ByteString getAdministrativeAreaBytes() {
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -472,10 +472,10 @@ public java.lang.String getLocality() {
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -505,7 +505,7 @@ public com.google.protobuf.ByteString getLocalityBytes() {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -530,7 +530,7 @@ public java.lang.String getSublocality() {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -562,23 +562,24 @@ public com.google.protobuf.ByteString getSublocalityBytes() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -598,23 +599,24 @@ public com.google.protobuf.ProtocolStringList getAddressLinesList() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -634,23 +636,24 @@ public int getAddressLinesCount() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -671,23 +674,24 @@ public java.lang.String getAddressLines(int index) {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -1097,23 +1101,23 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
*
*
*
- * Represents a postal address, e.g. for postal delivery or payments addresses.
- * Given a postal address, a postal service can deliver items to a premise, P.O.
- * Box or similar.
- * It is not intended to model geographical locations (roads, towns,
- * mountains).
+ * Represents a postal address, such as for postal delivery or payments
+ * addresses. With a postal address, a postal service can deliver items to a
+ * premise, P.O. box, or similar. A postal address is not intended to model
+ * geographical locations like roads, towns, or mountains.
*
- * In typical usage an address would be created via user input or from importing
+ * In typical usage, an address would be created by user input or from importing
* existing data, depending on the type of process.
*
- * Advice on address input / editing:
- * - Use an i18n-ready address widget such as
- * https://github.com/google/libaddressinput)
+ * Advice on address input or editing:
+ *
+ * - Use an internationalization-ready address widget such as
+ * https://github.com/google/libaddressinput.
* - Users should not be presented with UI elements for input or editing of
* fields outside countries where that field is used.
*
- * For more guidance on how to use this schema, please see:
- * https://support.google.com/business/answer/6397478
+ * For more guidance on how to use this schema, see:
+ * https://support.google.com/business/answer/6397478.
*
*
* Protobuf type {@code google.type.PostalAddress}
@@ -1491,8 +1495,8 @@ public Builder clearRevision() {
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -1518,8 +1522,8 @@ public java.lang.String getRegionCode() {
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -1545,8 +1549,8 @@ public com.google.protobuf.ByteString getRegionCodeBytes() {
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -1571,8 +1575,8 @@ public Builder setRegionCode(java.lang.String value) {
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -1593,8 +1597,8 @@ public Builder clearRegionCode() {
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -1788,8 +1792,8 @@ public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -1814,8 +1818,8 @@ public java.lang.String getPostalCode() {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -1840,8 +1844,8 @@ public com.google.protobuf.ByteString getPostalCodeBytes() {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -1865,8 +1869,8 @@ public Builder setPostalCode(java.lang.String value) {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -1886,8 +1890,8 @@ public Builder clearPostalCode() {
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -1914,9 +1918,9 @@ public Builder setPostalCodeBytes(com.google.protobuf.ByteString value) {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -1941,9 +1945,9 @@ public java.lang.String getSortingCode() {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -1968,9 +1972,9 @@ public com.google.protobuf.ByteString getSortingCodeBytes() {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -1994,9 +1998,9 @@ public Builder setSortingCode(java.lang.String value) {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -2016,9 +2020,9 @@ public Builder clearSortingCode() {
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -2046,10 +2050,10 @@ public Builder setSortingCodeBytes(com.google.protobuf.ByteString value) {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -2075,10 +2079,10 @@ public java.lang.String getAdministrativeArea() {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -2104,10 +2108,10 @@ public com.google.protobuf.ByteString getAdministrativeAreaBytes() {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -2132,10 +2136,10 @@ public Builder setAdministrativeArea(java.lang.String value) {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -2156,10 +2160,10 @@ public Builder clearAdministrativeArea() {
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -2184,10 +2188,10 @@ public Builder setAdministrativeAreaBytes(com.google.protobuf.ByteString value)
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -2210,10 +2214,10 @@ public java.lang.String getLocality() {
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -2236,10 +2240,10 @@ public com.google.protobuf.ByteString getLocalityBytes() {
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -2261,10 +2265,10 @@ public Builder setLocality(java.lang.String value) {
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -2282,10 +2286,10 @@ public Builder clearLocality() {
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -2311,7 +2315,7 @@ public Builder setLocalityBytes(com.google.protobuf.ByteString value) {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -2335,7 +2339,7 @@ public java.lang.String getSublocality() {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -2359,7 +2363,7 @@ public com.google.protobuf.ByteString getSublocalityBytes() {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -2382,7 +2386,7 @@ public Builder setSublocality(java.lang.String value) {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -2401,7 +2405,7 @@ public Builder clearSublocality() {
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -2436,23 +2440,24 @@ private void ensureAddressLinesIsMutable() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2473,23 +2478,24 @@ public com.google.protobuf.ProtocolStringList getAddressLinesList() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2509,23 +2515,24 @@ public int getAddressLinesCount() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2546,23 +2553,24 @@ public java.lang.String getAddressLines(int index) {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2583,23 +2591,24 @@ public com.google.protobuf.ByteString getAddressLinesBytes(int index) {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2628,23 +2637,24 @@ public Builder setAddressLines(int index, java.lang.String value) {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2672,23 +2682,24 @@ public Builder addAddressLines(java.lang.String value) {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2713,23 +2724,24 @@ public Builder addAllAddressLines(java.lang.Iterable values) {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -2753,23 +2765,24 @@ public Builder clearAddressLines() {
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressOrBuilder.java
index a207ac5afd..35ba454e61 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressOrBuilder.java
@@ -48,8 +48,8 @@ public interface PostalAddressOrBuilder
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -65,8 +65,8 @@ public interface PostalAddressOrBuilder
*
* Required. CLDR region code of the country/region of the address. This
* is never inferred and it is up to the user to ensure the value is
- * correct. See http://cldr.unicode.org/ and
- * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ * correct. See https://cldr.unicode.org/ and
+ * https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
* for details. Example: "CH" for Switzerland.
*
*
@@ -130,8 +130,8 @@ public interface PostalAddressOrBuilder
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -146,8 +146,8 @@ public interface PostalAddressOrBuilder
*
* Optional. Postal code of the address. Not all countries use or require
* postal codes to be present, but where they are used, they may trigger
- * additional validation with other parts of the address (e.g. state/zip
- * validation in the U.S.A.).
+ * additional validation with other parts of the address (for example,
+ * state or zip code validation in the United States).
*
*
* string postal_code = 4;
@@ -162,9 +162,9 @@ public interface PostalAddressOrBuilder
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -179,9 +179,9 @@ public interface PostalAddressOrBuilder
*
* Optional. Additional, country-specific, sorting code. This is not used
* in most regions. Where it is used, the value is either a string like
- * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- * alone, representing the "sector code" (Jamaica), "delivery area indicator"
- * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ * "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ * a number alone, representing the "sector code" (Jamaica), "delivery area
+ * indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
*
*
* string sorting_code = 5;
@@ -197,10 +197,10 @@ public interface PostalAddressOrBuilder
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -216,10 +216,10 @@ public interface PostalAddressOrBuilder
* Optional. Highest administrative subdivision which is used for postal
* addresses of a country or region.
* For example, this can be a state, a province, an oblast, or a prefecture.
- * Specifically, for Spain this is the province and not the autonomous
- * community (e.g. "Barcelona" and not "Catalonia").
- * Many countries don't use an administrative area in postal addresses. E.g.
- * in Switzerland this should be left unpopulated.
+ * For Spain, this is the province and not the autonomous
+ * community (for example, "Barcelona" and not "Catalonia").
+ * Many countries don't use an administrative area in postal addresses. For
+ * example, in Switzerland, this should be left unpopulated.
*
*
* string administrative_area = 6;
@@ -232,10 +232,10 @@ public interface PostalAddressOrBuilder
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -248,10 +248,10 @@ public interface PostalAddressOrBuilder
*
*
*
- * Optional. Generally refers to the city/town portion of the address.
+ * Optional. Generally refers to the city or town portion of the address.
* Examples: US city, IT comune, UK post town.
* In regions of the world where localities are not well defined or do not fit
- * into this structure well, leave locality empty and use address_lines.
+ * into this structure well, leave `locality` empty and use `address_lines`.
*
*
* string locality = 7;
@@ -265,7 +265,7 @@ public interface PostalAddressOrBuilder
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -279,7 +279,7 @@ public interface PostalAddressOrBuilder
*
*
* Optional. Sublocality of the address.
- * For example, this can be neighborhoods, boroughs, districts.
+ * For example, this can be a neighborhood, borough, or district.
*
*
* string sublocality = 8;
@@ -294,23 +294,24 @@ public interface PostalAddressOrBuilder
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -328,23 +329,24 @@ public interface PostalAddressOrBuilder
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -362,23 +364,24 @@ public interface PostalAddressOrBuilder
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
@@ -397,23 +400,24 @@ public interface PostalAddressOrBuilder
*
* Unstructured address lines describing the lower levels of an address.
*
- * Because values in address_lines do not have type information and may
- * sometimes contain multiple values in a single field (e.g.
+ * Because values in `address_lines` do not have type information and may
+ * sometimes contain multiple values in a single field (for example,
* "Austin, TX"), it is important that the line order is clear. The order of
- * address lines should be "envelope order" for the country/region of the
- * address. In places where this can vary (e.g. Japan), address_language is
- * used to make it explicit (e.g. "ja" for large-to-small ordering and
- * "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- * an address can be selected based on the language.
+ * address lines should be "envelope order" for the country or region of the
+ * address. In places where this can vary (for example, Japan),
+ * `address_language` is used to make it explicit (for example, "ja" for
+ * large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ * way, the most specific line of an address can be selected based on the
+ * language.
*
* The minimum permitted structural representation of an address consists
- * of a region_code with all remaining information placed in the
- * address_lines. It would be possible to format such an address very
+ * of a `region_code` with all remaining information placed in the
+ * `address_lines`. It would be possible to format such an address very
* approximately without geocoding, but no semantic reasoning could be
* made about any of the address components until it was at least
* partially resolved.
*
- * Creating an address only containing a region_code and address_lines, and
+ * Creating an address only containing a `region_code` and `address_lines` and
* then geocoding is the recommended way to handle completely unstructured
* addresses (as opposed to guessing which parts of the address should be
* localities or administrative areas).
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressProto.java
index 3cf23944f8..cf5b2bbc82 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/PostalAddressProto.java
@@ -60,10 +60,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "code\030\005 \001(\t\022\033\n\023administrative_area\030\006 \001(\t\022"
+ "\020\n\010locality\030\007 \001(\t\022\023\n\013sublocality\030\010 \001(\t\022\025"
+ "\n\raddress_lines\030\t \003(\t\022\022\n\nrecipients\030\n \003("
- + "\t\022\024\n\014organization\030\013 \001(\tBx\n\017com.google.ty"
+ + "\t\022\024\n\014organization\030\013 \001(\tBu\n\017com.google.ty"
+ "peB\022PostalAddressProtoP\001ZFgoogle.golang."
+ "org/genproto/googleapis/type/postaladdre"
- + "ss;postaladdress\370\001\001\242\002\003GTPb\006proto3"
+ + "ss;postaladdress\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Quaternion.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Quaternion.java
index 031501d555..dc03080e3b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Quaternion.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/Quaternion.java
@@ -24,6 +24,8 @@
*
*
*
+ * A quaternion, represented by four 64-bit floating point values.
+ *
* A quaternion is defined as the quotient of two directed lines in a
* three-dimensional space or equivalently as the quotient of two Euclidean
* vectors (https://en.wikipedia.org/wiki/Quaternion).
@@ -41,7 +43,7 @@
* where x, y, z, and w are real numbers, and i, j, and k are three imaginary
* numbers.
*
- * Our naming choice `(x, y, z, w)` comes from the desire to avoid confusion for
+ * The naming choice `(x, y, z, w)` comes from the desire to avoid confusion for
* those interested in the geometric properties of the quaternion in the 3D
* Cartesian space. Other texts often use alternative names or subscripts, such
* as `(a, b, c, d)`, `(1, i, j, k)`, or `(0, 1, 2, 3)`, which are perhaps
@@ -396,6 +398,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
*
*
*
+ * A quaternion, represented by four 64-bit floating point values.
+ *
* A quaternion is defined as the quotient of two directed lines in a
* three-dimensional space or equivalently as the quotient of two Euclidean
* vectors (https://en.wikipedia.org/wiki/Quaternion).
@@ -413,7 +417,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
* where x, y, z, and w are real numbers, and i, j, and k are three imaginary
* numbers.
*
- * Our naming choice `(x, y, z, w)` comes from the desire to avoid confusion for
+ * The naming choice `(x, y, z, w)` comes from the desire to avoid confusion for
* those interested in the geometric properties of the quaternion in the 3D
* Cartesian space. Other texts often use alternative names or subscripts, such
* as `(a, b, c, d)`, `(1, i, j, k)`, or `(0, 1, 2, 3)`, which are perhaps
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/QuaternionProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/QuaternionProto.java
index 704adf128e..1140ea7a40 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/QuaternionProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/QuaternionProto.java
@@ -55,10 +55,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
java.lang.String[] descriptorData = {
"\n\034google/type/quaternion.proto\022\013google.t"
+ "ype\"8\n\nQuaternion\022\t\n\001x\030\001 \001(\001\022\t\n\001y\030\002 \001(\001\022"
- + "\t\n\001z\030\003 \001(\001\022\t\n\001w\030\004 \001(\001Bo\n\017com.google.type"
+ + "\t\n\001z\030\003 \001(\001\022\t\n\001w\030\004 \001(\001Bl\n\017com.google.type"
+ "B\017QuaternionProtoP\001Z@google.golang.org/g"
+ "enproto/googleapis/type/quaternion;quate"
- + "rnion\370\001\001\242\002\003GTPb\006proto3"
+ + "rnion\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDay.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDay.java
index b9013280e0..990ae0637b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDay.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDay.java
@@ -75,8 +75,9 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
*
*
*
- * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
- * to allow the value "24:00:00" for scenarios like business closing time.
+ * Hours of a day in 24 hour format. Must be greater than or equal to 0 and
+ * typically must be less than or equal to 23. An API may choose to allow the
+ * value "24:00:00" for scenarios like business closing time.
*
*
* int32 hours = 1;
@@ -95,7 +96,8 @@ public int getHours() {
*
*
*
- * Minutes of hour of day. Must be from 0 to 59.
+ * Minutes of an hour. Must be greater than or equal to 0 and less than or
+ * equal to 59.
*
*
* int32 minutes = 2;
@@ -114,8 +116,9 @@ public int getMinutes() {
*
*
*
- * Seconds of minutes of the time. Must normally be from 0 to 59. An API may
- * allow the value 60 if it allows leap-seconds.
+ * Seconds of a minute. Must be greater than or equal to 0 and typically must
+ * be less than or equal to 59. An API may allow the value 60 if it allows
+ * leap-seconds.
*
*
* int32 seconds = 3;
@@ -134,7 +137,8 @@ public int getSeconds() {
*
*
*
- * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+ * Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
+ * and less than or equal to 999,999,999.
*
*
* int32 nanos = 4;
@@ -521,8 +525,9 @@ public Builder mergeFrom(
*
*
*
- * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
- * to allow the value "24:00:00" for scenarios like business closing time.
+ * Hours of a day in 24 hour format. Must be greater than or equal to 0 and
+ * typically must be less than or equal to 23. An API may choose to allow the
+ * value "24:00:00" for scenarios like business closing time.
*
*
* int32 hours = 1;
@@ -538,8 +543,9 @@ public int getHours() {
*
*
*
- * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
- * to allow the value "24:00:00" for scenarios like business closing time.
+ * Hours of a day in 24 hour format. Must be greater than or equal to 0 and
+ * typically must be less than or equal to 23. An API may choose to allow the
+ * value "24:00:00" for scenarios like business closing time.
*
*
* int32 hours = 1;
@@ -559,8 +565,9 @@ public Builder setHours(int value) {
*
*
*
- * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
- * to allow the value "24:00:00" for scenarios like business closing time.
+ * Hours of a day in 24 hour format. Must be greater than or equal to 0 and
+ * typically must be less than or equal to 23. An API may choose to allow the
+ * value "24:00:00" for scenarios like business closing time.
*
*
* int32 hours = 1;
@@ -580,7 +587,8 @@ public Builder clearHours() {
*
*
*
- * Minutes of hour of day. Must be from 0 to 59.
+ * Minutes of an hour. Must be greater than or equal to 0 and less than or
+ * equal to 59.
*
*
* int32 minutes = 2;
@@ -596,7 +604,8 @@ public int getMinutes() {
*
*
*
- * Minutes of hour of day. Must be from 0 to 59.
+ * Minutes of an hour. Must be greater than or equal to 0 and less than or
+ * equal to 59.
*
*
* int32 minutes = 2;
@@ -616,7 +625,8 @@ public Builder setMinutes(int value) {
*
*
*
- * Minutes of hour of day. Must be from 0 to 59.
+ * Minutes of an hour. Must be greater than or equal to 0 and less than or
+ * equal to 59.
*
*
* int32 minutes = 2;
@@ -636,8 +646,9 @@ public Builder clearMinutes() {
*
*
*
- * Seconds of minutes of the time. Must normally be from 0 to 59. An API may
- * allow the value 60 if it allows leap-seconds.
+ * Seconds of a minute. Must be greater than or equal to 0 and typically must
+ * be less than or equal to 59. An API may allow the value 60 if it allows
+ * leap-seconds.
*
*
* int32 seconds = 3;
@@ -653,8 +664,9 @@ public int getSeconds() {
*
*
*
- * Seconds of minutes of the time. Must normally be from 0 to 59. An API may
- * allow the value 60 if it allows leap-seconds.
+ * Seconds of a minute. Must be greater than or equal to 0 and typically must
+ * be less than or equal to 59. An API may allow the value 60 if it allows
+ * leap-seconds.
*
*
* int32 seconds = 3;
@@ -674,8 +686,9 @@ public Builder setSeconds(int value) {
*
*
*
- * Seconds of minutes of the time. Must normally be from 0 to 59. An API may
- * allow the value 60 if it allows leap-seconds.
+ * Seconds of a minute. Must be greater than or equal to 0 and typically must
+ * be less than or equal to 59. An API may allow the value 60 if it allows
+ * leap-seconds.
*
*
* int32 seconds = 3;
@@ -695,7 +708,8 @@ public Builder clearSeconds() {
*
*
*
- * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+ * Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
+ * and less than or equal to 999,999,999.
*
*
* int32 nanos = 4;
@@ -711,7 +725,8 @@ public int getNanos() {
*
*
*
- * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+ * Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
+ * and less than or equal to 999,999,999.
*
*
* int32 nanos = 4;
@@ -731,7 +746,8 @@ public Builder setNanos(int value) {
*
*
*
- * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+ * Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
+ * and less than or equal to 999,999,999.
*
*
* int32 nanos = 4;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayOrBuilder.java
index f536a040dc..da4ac5c6de 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayOrBuilder.java
@@ -30,8 +30,9 @@ public interface TimeOfDayOrBuilder
*
*
*
- * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
- * to allow the value "24:00:00" for scenarios like business closing time.
+ * Hours of a day in 24 hour format. Must be greater than or equal to 0 and
+ * typically must be less than or equal to 23. An API may choose to allow the
+ * value "24:00:00" for scenarios like business closing time.
*
*
* int32 hours = 1;
@@ -44,7 +45,8 @@ public interface TimeOfDayOrBuilder
*
*
*
- * Minutes of hour of day. Must be from 0 to 59.
+ * Minutes of an hour. Must be greater than or equal to 0 and less than or
+ * equal to 59.
*
*
* int32 minutes = 2;
@@ -57,8 +59,9 @@ public interface TimeOfDayOrBuilder
*
*
*
- * Seconds of minutes of the time. Must normally be from 0 to 59. An API may
- * allow the value 60 if it allows leap-seconds.
+ * Seconds of a minute. Must be greater than or equal to 0 and typically must
+ * be less than or equal to 59. An API may allow the value 60 if it allows
+ * leap-seconds.
*
*
* int32 seconds = 3;
@@ -71,7 +74,8 @@ public interface TimeOfDayOrBuilder
*
*
*
- * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+ * Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
+ * and less than or equal to 999,999,999.
*
*
* int32 nanos = 4;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayProto.java
index 3a5f4c5449..580855f851 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeOfDayProto.java
@@ -59,10 +59,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\005hours\030\001 \001(\005\022\017\n"
+ "\007minutes\030\002 \001(\005\022\017\n"
+ "\007seconds\030\003 \001(\005\022\r\n"
- + "\005nanos\030\004 \001(\005Bl\n"
+ + "\005nanos\030\004 \001(\005Bi\n"
+ "\017com.google.typeB\016TimeOfDayProtoP\001Z>go"
- + "ogle.golang.org/genproto/googleapis/type"
- + "/timeofday;timeofday\370\001\001\242\002\003GTPb\006proto3"
+ + "ogle.golang.org/genproto/googleapis/type/timeofday;timeofday\242\002\003GTPb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZone.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZone.java
index 8f761f3cb5..bf84d41811 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZone.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZone.java
@@ -78,7 +78,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -102,7 +102,7 @@ public java.lang.String getId() {
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -131,7 +131,7 @@ public com.google.protobuf.ByteString getIdBytes() {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -155,7 +155,7 @@ public java.lang.String getVersion() {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -508,7 +508,7 @@ public Builder mergeFrom(
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -531,7 +531,7 @@ public java.lang.String getId() {
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -554,7 +554,7 @@ public com.google.protobuf.ByteString getIdBytes() {
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -576,7 +576,7 @@ public Builder setId(java.lang.String value) {
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -594,7 +594,7 @@ public Builder clearId() {
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -619,7 +619,7 @@ public Builder setIdBytes(com.google.protobuf.ByteString value) {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -642,7 +642,7 @@ public java.lang.String getVersion() {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -665,7 +665,7 @@ public com.google.protobuf.ByteString getVersionBytes() {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -687,7 +687,7 @@ public Builder setVersion(java.lang.String value) {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -705,7 +705,7 @@ public Builder clearVersion() {
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZoneOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZoneOrBuilder.java
index c92bba2ddf..2e5e6be41b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZoneOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/type/TimeZoneOrBuilder.java
@@ -30,7 +30,7 @@ public interface TimeZoneOrBuilder
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -43,7 +43,7 @@ public interface TimeZoneOrBuilder
*
*
*
- * IANA Time Zone Database time zone, e.g. "America/New_York".
+ * IANA Time Zone Database time zone. For example "America/New_York".
*
*
* string id = 1;
@@ -56,7 +56,7 @@ public interface TimeZoneOrBuilder
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
@@ -69,7 +69,7 @@ public interface TimeZoneOrBuilder
*
*
*
- * Optional. IANA Time Zone Database version number, e.g. "2019a".
+ * Optional. IANA Time Zone Database version number. For example "2019a".
*
*
* string version = 2;
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto
index cb640bd68c..9b025bac15 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -199,6 +199,7 @@ message OAuthRequirements {
// The list of publicly documented OAuth scopes that are allowed access. An
// OAuth token containing any of these scopes will be accepted.
//
+ //
// Example:
//
// canonical_scopes: https://www.googleapis.com/auth/calendar,
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto
index 8d2206e535..7bff445a34 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -128,6 +128,10 @@ message BackendRule {
// operation. The default is no deadline.
double operation_deadline = 5;
+ // Path translation specifies how to combine the backend address with the
+ // request path in order to produce the appropriate forwarding URL for the
+ // request. See [PathTranslation][google.api.BackendRule.PathTranslation] for
+ // more details.
PathTranslation path_translation = 6;
// Authentication settings used by the backend.
@@ -182,4 +186,11 @@ message BackendRule {
// The map between request protocol and the backend address.
map overrides_by_request_protocol = 10;
+
+ // The load balancing policy used for connection to the application backend.
+ //
+ // Defined as an arbitrary string to accomondate custom load balancing
+ // policies supported by the underlying channel, but suggest most users use
+ // one of the standard policies, such as the default, "RoundRobin".
+ string load_balancing_policy = 11;
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto
index 7c82274229..2b86bb61e4 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto
index 3d692560ab..332e0d086d 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -41,15 +41,15 @@ extend google.protobuf.MethodOptions {
//
// For example, the proto RPC and annotation:
//
- // rpc CreateSubscription(CreateSubscriptionRequest)
- // returns (Subscription) {
- // option (google.api.method_signature) = "name,topic";
- // }
+ // rpc CreateSubscription(CreateSubscriptionRequest)
+ // returns (Subscription) {
+ // option (google.api.method_signature) = "name,topic";
+ // }
//
// Would add the following Java overload (in addition to the method accepting
// the request object):
//
- // public final Subscription createSubscription(String name, String topic)
+ // public final Subscription createSubscription(String name, String topic)
//
// The following backwards-compatibility guidelines apply:
//
@@ -71,32 +71,32 @@ extend google.protobuf.ServiceOptions {
//
// Example:
//
- // service Foo {
- // option (google.api.default_host) = "foo.googleapi.com";
- // ...
- // }
+ // service Foo {
+ // option (google.api.default_host) = "foo.googleapi.com";
+ // ...
+ // }
string default_host = 1049;
// OAuth scopes needed for the client.
//
// Example:
//
- // service Foo {
- // option (google.api.oauth_scopes) = \
- // "https://www.googleapis.com/auth/cloud-platform";
- // ...
- // }
+ // service Foo {
+ // option (google.api.oauth_scopes) = \
+ // "https://www.googleapis.com/auth/cloud-platform";
+ // ...
+ // }
//
// If there is more than one scope, use a comma-separated string:
//
// Example:
//
- // service Foo {
- // option (google.api.oauth_scopes) = \
- // "https://www.googleapis.com/auth/cloud-platform,"
- // "https://www.googleapis.com/auth/monitoring";
- // ...
- // }
+ // service Foo {
+ // option (google.api.oauth_scopes) = \
+ // "https://www.googleapis.com/auth/cloud-platform,"
+ // "https://www.googleapis.com/auth/monitoring";
+ // ...
+ // }
string oauth_scopes = 1050;
// The API version of this service, which should be sent by version-aware
@@ -110,9 +110,9 @@ extend google.protobuf.ServiceOptions {
//
// Example:
//
- // service Foo {
- // option (google.api.api_version) = "v1_20230821_preview";
- // }
+ // service Foo {
+ // option (google.api.api_version) = "v1_20230821_preview";
+ // }
string api_version = 525000001;
}
@@ -126,6 +126,8 @@ message CommonLanguageSettings {
repeated ClientLibraryDestination destinations = 2;
// Configuration for which RPCs should be generated in the GAPIC client.
+ //
+ // Note: This field should not be used in most cases.
SelectiveGapicGeneration selective_gapic_generation = 3;
}
@@ -227,9 +229,10 @@ message JavaSettings {
//
// Example of a YAML configuration::
//
- // publishing:
- // java_settings:
- // library_package: com.google.cloud.pubsub.v1
+ // publishing:
+ // library_settings:
+ // java_settings:
+ // library_package: com.google.cloud.pubsub.v1
string library_package = 1;
// Configure the Java class name to use instead of the service's for its
@@ -241,11 +244,11 @@ message JavaSettings {
//
// Example of a YAML configuration::
//
- // publishing:
- // java_settings:
- // service_class_names:
- // - google.pubsub.v1.Publisher: TopicAdmin
- // - google.pubsub.v1.Subscriber: SubscriptionAdmin
+ // publishing:
+ // java_settings:
+ // service_class_names:
+ // - google.pubsub.v1.Publisher: TopicAdmin
+ // - google.pubsub.v1.Subscriber: SubscriptionAdmin
map service_class_names = 2;
// Some settings.
@@ -262,6 +265,20 @@ message CppSettings {
message PhpSettings {
// Some settings.
CommonLanguageSettings common = 1;
+
+ // The package name to use in Php. Clobbers the php_namespace option
+ // set in the protobuf. This should be used **only** by APIs
+ // who have already set the language_settings.php.package_name" field
+ // in gapic.yaml. API teams should use the protobuf php_namespace option
+ // where possible.
+ //
+ // Example of a YAML configuration::
+ //
+ // publishing:
+ // library_settings:
+ // php_settings:
+ // library_package: Google\Cloud\PubSub\V1
+ string library_package = 2;
}
// Settings for Python client libraries.
@@ -353,10 +370,12 @@ message GoSettings {
// service names and values are the name to be used for the service client
// and call options.
//
- // publishing:
- // go_settings:
- // renamed_services:
- // Publisher: TopicAdmin
+ // Example:
+ //
+ // publishing:
+ // go_settings:
+ // renamed_services:
+ // Publisher: TopicAdmin
map renamed_services = 2;
}
@@ -391,10 +410,10 @@ message MethodSettings {
//
// Example:
//
- // publishing:
- // method_settings:
- // - selector: google.storage.control.v2.StorageControl.CreateFolder
- // # method settings for CreateFolder...
+ // publishing:
+ // method_settings:
+ // - selector: google.storage.control.v2.StorageControl.CreateFolder
+ // # method settings for CreateFolder...
string selector = 1;
// Describes settings to use for long-running operations when generating
@@ -403,14 +422,14 @@ message MethodSettings {
//
// Example of a YAML configuration::
//
- // publishing:
- // method_settings:
- // - selector: google.cloud.speech.v2.Speech.BatchRecognize
- // long_running:
- // initial_poll_delay: 60s # 1 minute
- // poll_delay_multiplier: 1.5
- // max_poll_delay: 360s # 6 minutes
- // total_poll_timeout: 54000s # 90 minutes
+ // publishing:
+ // method_settings:
+ // - selector: google.cloud.speech.v2.Speech.BatchRecognize
+ // long_running:
+ // initial_poll_delay: 60s # 1 minute
+ // poll_delay_multiplier: 1.5
+ // max_poll_delay: 360s # 6 minutes
+ // total_poll_timeout: 54000s # 90 minutes
LongRunning long_running = 2;
// List of top-level fields of the request message, that should be
@@ -419,12 +438,25 @@ message MethodSettings {
//
// Example of a YAML configuration:
//
- // publishing:
- // method_settings:
- // - selector: google.example.v1.ExampleService.CreateExample
- // auto_populated_fields:
- // - request_id
+ // publishing:
+ // method_settings:
+ // - selector: google.example.v1.ExampleService.CreateExample
+ // auto_populated_fields:
+ // - request_id
repeated string auto_populated_fields = 3;
+
+ // Batching configuration for an API method in client libraries.
+ //
+ // Example of a YAML configuration:
+ //
+ // publishing:
+ // method_settings:
+ // - selector: google.example.v1.ExampleService.BatchCreateExample
+ // batching:
+ // element_count_threshold: 1000
+ // request_byte_threshold: 100000000
+ // delay_threshold_millis: 10
+ BatchingConfigProto batching = 4;
}
// The organization for which the client libraries are being published.
@@ -471,6 +503,8 @@ enum ClientLibraryDestination {
// This message is used to configure the generation of a subset of the RPCs in
// a service for client libraries.
+//
+// Note: This feature should not be used in most cases.
message SelectiveGapicGeneration {
// An allowlist of the fully qualified names of RPCs that should be included
// on public client surfaces.
@@ -484,3 +518,81 @@ message SelectiveGapicGeneration {
// obfuscated identifiers, or other language idiomatic patterns.
bool generate_omitted_as_internal = 2;
}
+
+// `BatchingConfigProto` defines the batching configuration for an API method.
+message BatchingConfigProto {
+ // The thresholds which trigger a batched request to be sent.
+ BatchingSettingsProto thresholds = 1;
+
+ // The request and response fields used in batching.
+ BatchingDescriptorProto batch_descriptor = 2;
+}
+
+// `BatchingSettingsProto` specifies a set of batching thresholds, each of
+// which acts as a trigger to send a batch of messages as a request. At least
+// one threshold must be positive nonzero.
+message BatchingSettingsProto {
+ // The number of elements of a field collected into a batch which, if
+ // exceeded, causes the batch to be sent.
+ int32 element_count_threshold = 1;
+
+ // The aggregated size of the batched field which, if exceeded, causes the
+ // batch to be sent. This size is computed by aggregating the sizes of the
+ // request field to be batched, not of the entire request message.
+ int64 request_byte_threshold = 2;
+
+ // The duration after which a batch should be sent, starting from the addition
+ // of the first message to that batch.
+ google.protobuf.Duration delay_threshold = 3;
+
+ // The maximum number of elements collected in a batch that could be accepted
+ // by server.
+ int32 element_count_limit = 4;
+
+ // The maximum size of the request that could be accepted by server.
+ int32 request_byte_limit = 5;
+
+ // The maximum number of elements allowed by flow control.
+ int32 flow_control_element_limit = 6;
+
+ // The maximum size of data allowed by flow control.
+ int32 flow_control_byte_limit = 7;
+
+ // The behavior to take when the flow control limit is exceeded.
+ FlowControlLimitExceededBehaviorProto flow_control_limit_exceeded_behavior =
+ 8;
+}
+
+// The behavior to take when the flow control limit is exceeded.
+enum FlowControlLimitExceededBehaviorProto {
+ // Default behavior, system-defined.
+ UNSET_BEHAVIOR = 0;
+
+ // Stop operation, raise error.
+ THROW_EXCEPTION = 1;
+
+ // Pause operation until limit clears.
+ BLOCK = 2;
+
+ // Continue operation, disregard limit.
+ IGNORE = 3;
+}
+
+// `BatchingDescriptorProto` specifies the fields of the request message to be
+// used for batching, and, optionally, the fields of the response message to be
+// used for demultiplexing.
+message BatchingDescriptorProto {
+ // The repeated field in the request message to be aggregated by batching.
+ string batched_field = 1;
+
+ // A list of the fields in the request message. Two requests will be batched
+ // together only if the values of every field specified in
+ // `request_discriminator_fields` is equal between the two requests.
+ repeated string discriminator_fields = 2;
+
+ // Optional. When present, indicates the field in the response message to be
+ // used to demultiplex the response into multiple response messages, in
+ // correspondence with the multiple request messages originally batched
+ // together.
+ string subresponse_field = 3;
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto
index c1cc0e8b05..b6792b9a50 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto
index 5b137f5f79..c1704f1e99 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto
index ce3f2871d7..c0dc0cdc3d 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -32,8 +32,8 @@ option objc_class_prefix = "GAPI";
// environment: servicecontrol.googleapis.com
message Control {
// The service controller environment to use. If empty, no control plane
- // feature (like quota and billing) will be enabled. The recommended value for
- // most services is servicecontrol.googleapis.com
+ // features (like quota and billing) will be enabled. The recommended value
+ // for most services is servicecontrol.googleapis.com.
string environment = 1;
// Defines policies applying to the API methods of the service.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto
index 215be7d364..51cf36ef4f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto
index b94a06d473..a730ab89a5 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto
index a9fa9992a4..047cf54d51 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto
index 030888ae33..3b4826e5f7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -619,4 +619,189 @@ enum ErrorReason {
// }
// }
OVERLOADED_CREDENTIALS = 34;
+
+ // The request whose associated location violates the location org policy
+ // restrictions when creating resources in the restricted region.
+ //
+ // Example of an ErrorInfo when creating the Cloud Storage Bucket in the
+ // container "projects/123" under a restricted region
+ // "locations/asia-northeast3":
+ //
+ // {
+ // "reason": "LOCATION_ORG_POLICY_VIOLATED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "resource": "projects/123",
+ // "location": "locations/asia-northeast3"
+ // }
+ // }
+ //
+ // This response indicates creating the Cloud Storage Bucket in
+ // "locations/asia-northeast3" violates the location org policy restriction.
+ LOCATION_ORG_POLICY_VIOLATED = 35;
+
+ // The request is denied because it access data of regulated customers using
+ // TLS 1.0 and 1.1.
+ //
+ // Example of an ErrorInfo when accessing a GCP resource "projects/123" that
+ // is restricted by TLS Version Restriction for "pubsub.googleapis.com"
+ // service.
+ //
+ // {
+ // "reason": "TLS_ORG_POLICY_VIOLATED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "service": "pubsub.googleapis.com"
+ // "resource": "projects/123",
+ // "policyName": "constraints/gcp.restrictTLSVersion",
+ // "tlsVersion": "TLS_VERSION_1"
+ // }
+ // }
+ TLS_ORG_POLICY_VIOLATED = 36;
+
+ // The request is denied because the associated project has exceeded the
+ // emulator quota limit.
+ //
+ // Example of an ErrorInfo when the associated "projects/123" has exceeded the
+ // emulator quota limit.
+ //
+ // {
+ // "reason": "EMULATOR_QUOTA_EXCEEDED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "service": "pubsub.googleapis.com"
+ // "consumer": "projects/123"
+ // }
+ // }
+ EMULATOR_QUOTA_EXCEEDED = 38;
+
+ // The request is denied because the associated application credential header
+ // is invalid for an Android applications.
+ //
+ // Example of an ErrorInfo when the request from an Android application to the
+ // "pubsub.googleapis.com" with an invalid application credential header.
+ //
+ // {
+ // "reason": "CREDENTIAL_ANDROID_APP_INVALID",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "service": "pubsub.googleapis.com"
+ // }
+ // }
+ CREDENTIAL_ANDROID_APP_INVALID = 39;
+
+ // The request is denied because IAM permission on resource is denied.
+ //
+ // Example of an ErrorInfo when the IAM permission `aiplatform.datasets.list`
+ // is denied on resource `projects/123`.
+ //
+ // {
+ // "reason": "IAM_PERMISSION_DENIED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "resource": "projects/123"
+ // "permission": "aiplatform.datasets.list"
+ // }
+ // }
+ IAM_PERMISSION_DENIED = 41;
+
+ // The request is denied because it contains the invalid JWT token.
+ //
+ // Example of an ErrorInfo when the request contains an invalid JWT token for
+ // service `storage.googleapis.com`.
+ //
+ // {
+ // "reason": "JWT_TOKEN_INVALID",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "service": "storage.googleapis.com"
+ // }
+ // }
+ JWT_TOKEN_INVALID = 42;
+
+ // The request is denied because it contains credential with type that is
+ // unsupported.
+ //
+ // Example of an ErrorInfo when the request contains an unsupported credential
+ // type for service `storage.googleapis.com`.
+ //
+ // {
+ // "reason": "CREDENTIAL_TYPE_UNSUPPORTED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "service": "storage.googleapis.com"
+ // }
+ // }
+ CREDENTIAL_TYPE_UNSUPPORTED = 43;
+
+ // The request is denied because it contains unsupported account type.
+ //
+ // Example of an ErrorInfo when the request contains an unsupported account
+ // type for service `storage.googleapis.com`.
+ //
+ // {
+ // "reason": "ACCOUNT_TYPE_UNSUPPORTED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "service": "storage.googleapis.com"
+ // }
+ // }
+ ACCOUNT_TYPE_UNSUPPORTED = 44;
+
+ // The request is denied because the API endpoint is restricted by
+ // administrators according to the organization policy constraint.
+ // For more information see
+ // https://cloud.google.com/assured-workloads/docs/restrict-endpoint-usage.
+ //
+ // Example of an ErrorInfo when access to Google Cloud Storage service is
+ // restricted by Restrict Endpoint Usage policy:
+ //
+ // {
+ // "reason": "ENDPOINT_USAGE_RESTRICTION_VIOLATED",
+ // "domain": "googleapis.com/policies/endpointUsageRestriction",
+ // "metadata": {
+ // "policy_name": "constraints/gcp.restrictEndpointUsage",
+ // "checked_value": "storage.googleapis.com"
+ // "consumer": "organization/123"
+ // "service": "storage.googleapis.com"
+ // }
+ // }
+ ENDPOINT_USAGE_RESTRICTION_VIOLATED = 45;
+
+ // The request is denied because the TLS Cipher Suite is restricted by
+ // administrators according to the organization policy constraint.
+ // For more information see
+ // https://cloud.google.com/assured-workloads/docs/restrict-tls-cipher-suites
+ //
+ // Example of an ErrorInfo when access to Google Cloud BigQuery service is
+ // restricted by Restrict TLS Cipher Suites policy:
+ //
+ // {
+ // "reason": "TLS_CIPHER_RESTRICTION_VIOLATED",
+ // "domain": "googleapis.com/policies/tlsCipherRestriction",
+ // "metadata": {
+ // "policy_name": "constraints/gcp.restrictTLSCipherSuites",
+ // "checked_value": "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+ // "consumer": "organization/123"
+ // "service": "bigquery.googleapis.com"
+ // }
+ // }
+ TLS_CIPHER_RESTRICTION_VIOLATED = 46;
+
+ // The request is denied because the MCP activation check fails.
+ //
+ // Example of an ErrorInfo when the container "projects/123" contacting
+ // "pubsub.googleapis.com" service which is disabled by MCP:
+ //
+ // { "reason": "MCP_SERVER_DISABLED",
+ // "domain": "googleapis.com",
+ // "metadata": {
+ // "consumer": "projects/123",
+ // "service": "pubsub.googleapis.com"
+ // }
+ // }
+ //
+ // This response indicates the "pubsub.googleapis.com" has been disabled in
+ // "projects/123" for MCP.
+ MCP_SERVER_DISABLED = 47;
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto
index 1fdaaed11a..861f8254fb 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_info.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_info.proto
index aaa07a1815..64387fde13 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_info.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_info.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto
index 57621b5374..bb3af8e56a 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto
index e3e17c8acb..3fd226a987 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto
index 739e4e95ed..5d77c70882 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto
index 1e86c1ad17..0fff247bd8 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto
index 3d55e408be..2f13e72750 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto
index 613e005ed5..7a82de9acb 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto
index 9da49ba0cd..b7fb82a9bb 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto
index 36abe14ca0..eaf1f1280b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto
index 5c3b2d9d90..b939a0ca2a 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/policy.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/policy.proto
index cc577a169b..c925fdc427 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/policy.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/policy.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto
index 9e7fb3bf65..29ae86ed46 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto
index 5669cbc985..2a5213bb08 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto
index 4fcb2acb6c..020d32f7b7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -59,9 +59,13 @@ extend google.protobuf.MethodOptions {
// app_profile_id: profiles/prof_qux
// }
//
-// The routing header consists of one or multiple key-value pairs. Every key
-// and value must be percent-encoded, and joined together in the format of
-// `key1=value1&key2=value2`.
+// The routing header consists of one or multiple key-value pairs. The order of
+// the key-value pairs is undefined, the order of the `routing_parameters` in
+// the `RoutingRule` only matters for the evaluation order of the path
+// templates when `field` is the same. See the examples below for more details.
+//
+// Every key and value in the routing header must be percent-encoded,
+// and joined together in the following format: `key1=value1&key2=value2`.
// The examples below skip the percent-encoding for readability.
//
// Example 1
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto
index 598b75a0e4..9952ca0e8d 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -159,8 +159,7 @@ message Service {
repeated MetricDescriptor metrics = 24;
// Defines the monitored resources used by this service. This is required
- // by the [Service.monitoring][google.api.Service.monitoring] and
- // [Service.logging][google.api.Service.logging] configurations.
+ // by the `Service.monitoring` and `Service.logging` configurations.
repeated MonitoredResourceDescriptor monitored_resources = 25;
// Billing configuration.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto
index 3257b5a722..1d4094e13d 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto
index 15b93f913e..5ab1f37e1b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto
index 4b7aa5fdf2..df1b93b39f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -52,30 +52,6 @@ message Usage {
}
// Usage configuration rules for the service.
-//
-// NOTE: Under development.
-//
-//
-// Use this rule to configure unregistered calls for the service. Unregistered
-// calls are calls that do not contain consumer project identity.
-// (Example: calls that do not contain an API key).
-// By default, API methods do not allow unregistered calls, and each method call
-// must be identified by a consumer project identity. Use this rule to
-// allow/disallow unregistered calls.
-//
-// Example of an API that wants to allow unregistered calls for entire service.
-//
-// usage:
-// rules:
-// - selector: "*"
-// allow_unregistered_calls: true
-//
-// Example of a method that wants to allow unregistered calls.
-//
-// usage:
-// rules:
-// - selector: "google.example.library.v1.LibraryService.CreateBook"
-// allow_unregistered_calls: true
message UsageRule {
// Selects the methods to which this rule applies. Use '*' to indicate all
// methods in all APIs.
@@ -84,8 +60,12 @@ message UsageRule {
// details.
string selector = 1;
- // If true, the selected method allows unregistered calls, e.g. calls
- // that don't identify any user or application.
+ // Use this rule to configure unregistered calls for the service. Unregistered
+ // calls are calls that do not contain consumer project identity.
+ // (Example: calls that do not contain an API key).
+ //
+ // WARNING: By default, API methods do not allow unregistered calls, and each
+ // method call must be identified by a consumer project identity.
bool allow_unregistered_calls = 2;
// If true, the selected method should skip service control and the control
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto
index 0ab5bdc1c9..fb5cac6f26 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/code.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/code.proto
index aa6ce15378..46b5d75a78 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/code.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/code.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/attribute_context.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/attribute_context.proto
index 5727660091..55f95f844e 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/attribute_context.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/attribute_context.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -21,7 +21,6 @@ import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/rpc/context/attribute_context;attribute_context";
option java_multiple_files = true;
option java_outer_classname = "AttributeContextProto";
@@ -203,6 +202,12 @@ message AttributeContext {
// The request authentication. May be absent for unauthenticated requests.
// Derived from the HTTP request `Authorization` header or equivalent.
Auth auth = 13;
+
+ // The values from Origin header from the HTTP request, such as
+ // "https://console.cloud.google.com". Modern browsers can only have one
+ // origin. Special browsers and/or HTTP clients may require multiple
+ // origins.
+ string origin = 14;
}
// This message defines attributes for a typical network response. It
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto
index fddfab22a2..03c5ab9a50 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/error_details.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/error_details.proto
index 4f9ecff035..43b7d04d2b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/error_details.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/error_details.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -261,17 +261,17 @@ message BadRequest {
// In this example, in proto `field` could take one of the following values:
//
// * `full_name` for a violation in the `full_name` value
- // * `email_addresses[1].email` for a violation in the `email` field of the
+ // * `email_addresses[0].email` for a violation in the `email` field of the
// first `email_addresses` message
- // * `email_addresses[3].type[2]` for a violation in the second `type`
+ // * `email_addresses[2].type[1]` for a violation in the second `type`
// value in the third `email_addresses` message.
//
// In JSON, the same values are represented as:
//
// * `fullName` for a violation in the `fullName` value
- // * `emailAddresses[1].email` for a violation in the `email` field of the
+ // * `emailAddresses[0].email` for a violation in the `email` field of the
// first `emailAddresses` message
- // * `emailAddresses[3].type[2]` for a violation in the second `type`
+ // * `emailAddresses[2].type[1]` for a violation in the second `type`
// value in the third `emailAddresses` message.
string field = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/status.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/status.proto
index dc14c9438c..97f50b9d89 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/status.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/status.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package google.rpc;
import "google/protobuf/any.proto";
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/rpc/status;status";
option java_multiple_files = true;
option java_outer_classname = "StatusProto";
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/calendar_period.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/calendar_period.proto
index 57d360add3..ae08aebd67 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/calendar_period.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/calendar_period.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/color.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/color.proto
index 26508db9fc..c48d0644a7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/color.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/color.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package google.type;
import "google/protobuf/wrappers.proto";
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/color;color";
option java_multiple_files = true;
option java_outer_classname = "ColorProto";
@@ -26,22 +25,22 @@ option java_package = "com.google.type";
option objc_class_prefix = "GTP";
// Represents a color in the RGBA color space. This representation is designed
-// for simplicity of conversion to/from color representations in various
+// for simplicity of conversion to and from color representations in various
// languages over compactness. For example, the fields of this representation
// can be trivially provided to the constructor of `java.awt.Color` in Java; it
// can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
// method in iOS; and, with just a little work, it can be easily formatted into
// a CSS `rgba()` string in JavaScript.
//
-// This reference page doesn't carry information about the absolute color
-// space
-// that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-// DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color
+// This reference page doesn't have information about the absolute color
+// space that should be used to interpret the RGB value—for example, sRGB,
+// Adobe RGB,
+// DCI-P3, and BT.2020. By default, applications should assume the sRGB color
// space.
//
-// When color equality needs to be decided, implementations, unless
-// documented otherwise, treat two colors as equal if all their red,
-// green, blue, and alpha values each differ by at most 1e-5.
+// When color equality needs to be decided, implementations, unless documented
+// otherwise, treat two colors as equal if all their red, green, blue, and alpha
+// values each differ by at most `1e-5`.
//
// Example (Java):
//
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/date.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/date.proto
index 6f63436e5e..12be7e16a4 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/date.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/date.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/date;date";
option java_multiple_files = true;
option java_outer_classname = "DateProto";
@@ -28,14 +27,17 @@ option objc_class_prefix = "GTP";
// date is relative to the Gregorian Calendar. This can represent one of the
// following:
//
-// * A full date, with non-zero year, month, and day values
-// * A month and day value, with a zero year, such as an anniversary
-// * A year on its own, with zero month and day values
-// * A year and month value, with a zero day, such as a credit card expiration
-// date
+// * A full date, with non-zero year, month, and day values.
+// * A month and day, with a zero year (for example, an anniversary).
+// * A year on its own, with a zero month and a zero day.
+// * A year and month, with a zero day (for example, a credit card expiration
+// date).
//
-// Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and
-// `google.protobuf.Timestamp`.
+// Related types:
+//
+// * [google.type.TimeOfDay][google.type.TimeOfDay]
+// * [google.type.DateTime][google.type.DateTime]
+// * [google.protobuf.Timestamp][google.protobuf.Timestamp]
message Date {
// Year of the date. Must be from 1 to 9999, or 0 to specify a date without
// a year.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/datetime.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/datetime.proto
index 9f0d62b069..b81e4f472f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/datetime.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/datetime.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package google.type;
import "google/protobuf/duration.proto";
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/datetime;datetime";
option java_multiple_files = true;
option java_outer_classname = "DateTimeProto";
@@ -38,8 +37,8 @@ option objc_class_prefix = "GTP";
//
// The date is relative to the Proleptic Gregorian Calendar.
//
-// If year is 0, the DateTime is considered not to have a specific year. month
-// and day must have valid, non-zero values.
+// If year, month, or day are 0, the DateTime is considered not to have a
+// specific year, month, or day respectively.
//
// This type may also be used to represent a physical time if all the date and
// time fields are set and either case of the `time_offset` oneof is set.
@@ -54,27 +53,28 @@ message DateTime {
// datetime without a year.
int32 year = 1;
- // Required. Month of year. Must be from 1 to 12.
+ // Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
+ // datetime without a month.
int32 month = 2;
- // Required. Day of month. Must be from 1 to 31 and valid for the year and
- // month.
+ // Optional. Day of month. Must be from 1 to 31 and valid for the year and
+ // month, or 0 if specifying a datetime without a day.
int32 day = 3;
- // Required. Hours of day in 24 hour format. Should be from 0 to 23. An API
- // may choose to allow the value "24:00:00" for scenarios like business
- // closing time.
+ // Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults
+ // to 0 (midnight). An API may choose to allow the value "24:00:00" for
+ // scenarios like business closing time.
int32 hours = 4;
- // Required. Minutes of hour of day. Must be from 0 to 59.
+ // Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
int32 minutes = 5;
- // Required. Seconds of minutes of the time. Must normally be from 0 to 59. An
- // API may allow the value 60 if it allows leap-seconds.
+ // Optional. Seconds of minutes of the time. Must normally be from 0 to 59,
+ // defaults to 0. An API may allow the value 60 if it allows leap-seconds.
int32 seconds = 6;
- // Required. Fractions of seconds in nanoseconds. Must be from 0 to
- // 999,999,999.
+ // Optional. Fractions of seconds in nanoseconds. Must be from 0 to
+ // 999,999,999, defaults to 0.
int32 nanos = 7;
// Optional. Specifies either the UTC offset or the time zone of the DateTime.
@@ -96,9 +96,9 @@ message DateTime {
// Represents a time zone from the
// [IANA Time Zone Database](https://www.iana.org/time-zones).
message TimeZone {
- // IANA Time Zone Database time zone, e.g. "America/New_York".
+ // IANA Time Zone Database time zone. For example "America/New_York".
string id = 1;
- // Optional. IANA Time Zone Database version number, e.g. "2019a".
+ // Optional. IANA Time Zone Database version number. For example "2019a".
string version = 2;
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/dayofweek.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/dayofweek.proto
index 5684bec35e..669d89401c 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/dayofweek.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/dayofweek.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/decimal.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/decimal.proto
index 77a06db0e5..353e14b477 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/decimal.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/decimal.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/decimal;decimal";
option java_multiple_files = true;
option java_outer_classname = "DecimalProto";
@@ -24,19 +23,17 @@ option java_package = "com.google.type";
option objc_class_prefix = "GTP";
// A representation of a decimal value, such as 2.5. Clients may convert values
-// into language-native decimal formats, such as Java's [BigDecimal][] or
-// Python's [decimal.Decimal][].
-//
-// [BigDecimal]:
-// https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html
-// [decimal.Decimal]: https://docs.python.org/3/library/decimal.html
+// into language-native decimal formats, such as Java's
+// [BigDecimal](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html)
+// or Python's
+// [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
message Decimal {
// The decimal value, as a string.
//
// The string representation consists of an optional sign, `+` (`U+002B`)
// or `-` (`U+002D`), followed by a sequence of zero or more decimal digits
// ("the integer"), optionally followed by a fraction, optionally followed
- // by an exponent.
+ // by an exponent. An empty string **should** be interpreted as `0`.
//
// The fraction consists of a decimal point followed by zero or more decimal
// digits. The string must contain at least one digit in either the integer
@@ -50,12 +47,13 @@ message Decimal {
//
// - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`).
// - Replacing a zero-length integer value with `0` (`.5` -> `0.5`).
- // - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`).
- // - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`).
+ // - Coercing the exponent character to upper-case, with explicit sign
+ // (`2.5e8` -> `2.5E+8`).
+ // - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`).
//
// Services **may** perform additional normalization based on its own needs
// and the internal decimal implementation selected, such as shifting the
- // decimal point and exponent value together (example: `2.5e-1` <-> `0.25`).
+ // decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
// Additionally, services **may** preserve trailing zeroes in the fraction
// to indicate increased precision, but are not required to do so.
//
@@ -67,7 +65,7 @@ message Decimal {
// The ENBF grammar is:
//
// DecimalString =
- // [Sign] Significand [Exponent];
+ // '' | [Sign] Significand [Exponent];
//
// Sign = '+' | '-';
//
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/expr.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/expr.proto
index 97c4f7da0f..2fca5cda31 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/expr.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/expr.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/fraction.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/fraction.proto
index b3b0d0f380..72f90b3113 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/fraction.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/fraction.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/interval.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/interval.proto
index d9b2427145..8e001282ca 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/interval.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/interval.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package google.type;
import "google/protobuf/timestamp.proto";
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/interval;interval";
option java_multiple_files = true;
option java_outer_classname = "IntervalProto";
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/latlng.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/latlng.proto
index 6714f65bd5..2866058ccf 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/latlng.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/latlng.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/latlng;latlng";
option java_multiple_files = true;
option java_outer_classname = "LatLngProto";
@@ -25,9 +24,9 @@ option objc_class_prefix = "GTP";
// An object that represents a latitude/longitude pair. This is expressed as a
// pair of doubles to represent degrees latitude and degrees longitude. Unless
-// specified otherwise, this must conform to the
-// WGS84
-// standard. Values must be within normalized ranges.
+// specified otherwise, this object must conform to the
+//
+// WGS84 standard. Values must be within normalized ranges.
message LatLng {
// The latitude in degrees. It must be in the range [-90.0, +90.0].
double latitude = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/localized_text.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/localized_text.proto
index 3971e81116..d3f2c2c183 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/localized_text.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/localized_text.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/localized_text;localized_text";
option java_multiple_files = true;
option java_outer_classname = "LocalizedTextProto";
@@ -25,7 +24,8 @@ option objc_class_prefix = "GTP";
// Localized variant of a text in a particular language.
message LocalizedText {
- // Localized string in the language corresponding to `language_code' below.
+ // Localized string in the language corresponding to
+ // [language_code][google.type.LocalizedText.language_code] below.
string text = 1;
// The text's BCP-47 language code, such as "en-US" or "sr-Latn".
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/money.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/money.proto
index f67aa51f0e..ed0d790a33 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/money.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/money.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/money;money";
option java_multiple_files = true;
option java_outer_classname = "MoneyProto";
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/month.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/month.proto
index 169282ae98..f8a66305f9 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/month.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/month.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/phone_number.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/phone_number.proto
index 23dbc6bdf1..7c55be0768 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/phone_number.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/phone_number.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/phone_number;phone_number";
option java_multiple_files = true;
option java_outer_classname = "PhoneNumberProto";
@@ -39,13 +38,13 @@ option objc_class_prefix = "GTP";
//
// For instance, in Java this would be:
//
-// com.google.type.PhoneNumber wireProto =
-// com.google.type.PhoneNumber.newBuilder().build();
-// com.google.i18n.phonenumbers.Phonenumber.PhoneNumber phoneNumber =
-// PhoneNumberUtil.getInstance().parse(wireProto.getE164Number(), "ZZ");
-// if (!wireProto.getExtension().isEmpty()) {
-// phoneNumber.setExtension(wireProto.getExtension());
-// }
+// com.google.type.PhoneNumber wireProto =
+// com.google.type.PhoneNumber.newBuilder().build();
+// com.google.i18n.phonenumbers.Phonenumber.PhoneNumber phoneNumber =
+// PhoneNumberUtil.getInstance().parse(wireProto.getE164Number(), "ZZ");
+// if (!wireProto.getExtension().isEmpty()) {
+// phoneNumber.setExtension(wireProto.getExtension());
+// }
//
// Reference(s):
// - https://github.com/google/libphonenumber
@@ -53,12 +52,13 @@ message PhoneNumber {
// An object representing a short code, which is a phone number that is
// typically much shorter than regular phone numbers and can be used to
// address messages in MMS and SMS systems, as well as for abbreviated dialing
- // (e.g. "Text 611 to see how many minutes you have remaining on your plan.").
+ // (For example "Text 611 to see how many minutes you have remaining on your
+ // plan.").
//
// Short codes are restricted to a region and are not internationally
// dialable, which means the same short code can exist in different regions,
// with different usage and pricing, even if those regions share the same
- // country calling code (e.g. US and CA).
+ // country calling code (For example: US and CA).
message ShortCode {
// Required. The BCP-47 region code of the location where calls to this
// short code can be made, such as "US" and "BB".
@@ -68,7 +68,7 @@ message PhoneNumber {
string region_code = 1;
// Required. The short code digits, without a leading plus ('+') or country
- // calling code, e.g. "611".
+ // calling code. For example "611".
string number = 2;
}
@@ -79,24 +79,29 @@ message PhoneNumber {
// The phone number, represented as a leading plus sign ('+'), followed by a
// phone number that uses a relaxed ITU E.164 format consisting of the
// country calling code (1 to 3 digits) and the subscriber number, with no
- // additional spaces or formatting, e.g.:
+ // additional spaces or formatting. For example:
+ //
// - correct: "+15552220123"
- // - incorrect: "+1 (555) 222-01234 x123".
+ //
+ // - incorrect: "+1 (555) 222-01234 x123"
//
// The ITU E.164 format limits the latter to 12 digits, but in practice not
// all countries respect that, so we relax that restriction here.
// National-only numbers are not allowed.
//
// References:
+ //
// - https://www.itu.int/rec/T-REC-E.164-201011-I
+ //
// - https://en.wikipedia.org/wiki/E.164.
+ //
// - https://en.wikipedia.org/wiki/List_of_country_calling_codes
string e164_number = 1;
// A short code.
//
// Reference(s):
- // - https://en.wikipedia.org/wiki/Short_code
+ // - https://wikipedia.org/wiki/Short_code
ShortCode short_code = 2;
}
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/postal_address.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/postal_address.proto
index e58d5c3504..5705962523 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/postal_address.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/postal_address.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,30 +16,29 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/postaladdress;postaladdress";
option java_multiple_files = true;
option java_outer_classname = "PostalAddressProto";
option java_package = "com.google.type";
option objc_class_prefix = "GTP";
-// Represents a postal address, e.g. for postal delivery or payments addresses.
-// Given a postal address, a postal service can deliver items to a premise, P.O.
-// Box or similar.
-// It is not intended to model geographical locations (roads, towns,
-// mountains).
+// Represents a postal address, such as for postal delivery or payments
+// addresses. With a postal address, a postal service can deliver items to a
+// premise, P.O. box, or similar. A postal address is not intended to model
+// geographical locations like roads, towns, or mountains.
//
-// In typical usage an address would be created via user input or from importing
+// In typical usage, an address would be created by user input or from importing
// existing data, depending on the type of process.
//
-// Advice on address input / editing:
-// - Use an i18n-ready address widget such as
-// https://github.com/google/libaddressinput)
-// - Users should not be presented with UI elements for input or editing of
-// fields outside countries where that field is used.
+// Advice on address input or editing:
//
-// For more guidance on how to use this schema, please see:
-// https://support.google.com/business/answer/6397478
+// - Use an internationalization-ready address widget such as
+// https://github.com/google/libaddressinput.
+// - Users should not be presented with UI elements for input or editing of
+// fields outside countries where that field is used.
+//
+// For more guidance on how to use this schema, see:
+// https://support.google.com/business/answer/6397478.
message PostalAddress {
// The schema revision of the `PostalAddress`. This must be set to 0, which is
// the latest revision.
@@ -49,8 +48,8 @@ message PostalAddress {
// Required. CLDR region code of the country/region of the address. This
// is never inferred and it is up to the user to ensure the value is
- // correct. See http://cldr.unicode.org/ and
- // http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
+ // correct. See https://cldr.unicode.org/ and
+ // https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
// for details. Example: "CH" for Switzerland.
string region_code = 2;
@@ -70,55 +69,56 @@ message PostalAddress {
// Optional. Postal code of the address. Not all countries use or require
// postal codes to be present, but where they are used, they may trigger
- // additional validation with other parts of the address (e.g. state/zip
- // validation in the U.S.A.).
+ // additional validation with other parts of the address (for example,
+ // state or zip code validation in the United States).
string postal_code = 4;
// Optional. Additional, country-specific, sorting code. This is not used
// in most regions. Where it is used, the value is either a string like
- // "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
- // alone, representing the "sector code" (Jamaica), "delivery area indicator"
- // (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
+ // "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or just
+ // a number alone, representing the "sector code" (Jamaica), "delivery area
+ // indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
string sorting_code = 5;
// Optional. Highest administrative subdivision which is used for postal
// addresses of a country or region.
// For example, this can be a state, a province, an oblast, or a prefecture.
- // Specifically, for Spain this is the province and not the autonomous
- // community (e.g. "Barcelona" and not "Catalonia").
- // Many countries don't use an administrative area in postal addresses. E.g.
- // in Switzerland this should be left unpopulated.
+ // For Spain, this is the province and not the autonomous
+ // community (for example, "Barcelona" and not "Catalonia").
+ // Many countries don't use an administrative area in postal addresses. For
+ // example, in Switzerland, this should be left unpopulated.
string administrative_area = 6;
- // Optional. Generally refers to the city/town portion of the address.
+ // Optional. Generally refers to the city or town portion of the address.
// Examples: US city, IT comune, UK post town.
// In regions of the world where localities are not well defined or do not fit
- // into this structure well, leave locality empty and use address_lines.
+ // into this structure well, leave `locality` empty and use `address_lines`.
string locality = 7;
// Optional. Sublocality of the address.
- // For example, this can be neighborhoods, boroughs, districts.
+ // For example, this can be a neighborhood, borough, or district.
string sublocality = 8;
// Unstructured address lines describing the lower levels of an address.
//
- // Because values in address_lines do not have type information and may
- // sometimes contain multiple values in a single field (e.g.
+ // Because values in `address_lines` do not have type information and may
+ // sometimes contain multiple values in a single field (for example,
// "Austin, TX"), it is important that the line order is clear. The order of
- // address lines should be "envelope order" for the country/region of the
- // address. In places where this can vary (e.g. Japan), address_language is
- // used to make it explicit (e.g. "ja" for large-to-small ordering and
- // "ja-Latn" or "en" for small-to-large). This way, the most specific line of
- // an address can be selected based on the language.
+ // address lines should be "envelope order" for the country or region of the
+ // address. In places where this can vary (for example, Japan),
+ // `address_language` is used to make it explicit (for example, "ja" for
+ // large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
+ // way, the most specific line of an address can be selected based on the
+ // language.
//
// The minimum permitted structural representation of an address consists
- // of a region_code with all remaining information placed in the
- // address_lines. It would be possible to format such an address very
+ // of a `region_code` with all remaining information placed in the
+ // `address_lines`. It would be possible to format such an address very
// approximately without geocoding, but no semantic reasoning could be
// made about any of the address components until it was at least
// partially resolved.
//
- // Creating an address only containing a region_code and address_lines, and
+ // Creating an address only containing a `region_code` and `address_lines` and
// then geocoding is the recommended way to handle completely unstructured
// addresses (as opposed to guessing which parts of the address should be
// localities or administrative areas).
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/quaternion.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/quaternion.proto
index 18c7b74255..d24629821f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/quaternion.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/quaternion.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,13 +16,14 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/quaternion;quaternion";
option java_multiple_files = true;
option java_outer_classname = "QuaternionProto";
option java_package = "com.google.type";
option objc_class_prefix = "GTP";
+// A quaternion, represented by four 64-bit floating point values.
+//
// A quaternion is defined as the quotient of two directed lines in a
// three-dimensional space or equivalently as the quotient of two Euclidean
// vectors (https://en.wikipedia.org/wiki/Quaternion).
@@ -40,7 +41,7 @@ option objc_class_prefix = "GTP";
// where x, y, z, and w are real numbers, and i, j, and k are three imaginary
// numbers.
//
-// Our naming choice `(x, y, z, w)` comes from the desire to avoid confusion for
+// The naming choice `(x, y, z, w)` comes from the desire to avoid confusion for
// those interested in the geometric properties of the quaternion in the 3D
// Cartesian space. Other texts often use alternative names or subscripts, such
// as `(a, b, c, d)`, `(1, i, j, k)`, or `(0, 1, 2, 3)`, which are perhaps
@@ -78,7 +79,6 @@ option objc_class_prefix = "GTP";
// it would produce a unique representation. It is thus recommended that `w` be
// kept positive, which can be achieved by changing all the signs when `w` is
// negative.
-//
message Quaternion {
// The x component.
double x = 1;
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/timeofday.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/timeofday.proto
index cd6a80574b..94090bd085 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/type/timeofday.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/type/timeofday.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@ syntax = "proto3";
package google.type;
-option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/type/timeofday;timeofday";
option java_multiple_files = true;
option java_outer_classname = "TimeOfDayProto";
@@ -28,17 +27,21 @@ option objc_class_prefix = "GTP";
// types are [google.type.Date][google.type.Date] and
// `google.protobuf.Timestamp`.
message TimeOfDay {
- // Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
- // to allow the value "24:00:00" for scenarios like business closing time.
+ // Hours of a day in 24 hour format. Must be greater than or equal to 0 and
+ // typically must be less than or equal to 23. An API may choose to allow the
+ // value "24:00:00" for scenarios like business closing time.
int32 hours = 1;
- // Minutes of hour of day. Must be from 0 to 59.
+ // Minutes of an hour. Must be greater than or equal to 0 and less than or
+ // equal to 59.
int32 minutes = 2;
- // Seconds of minutes of the time. Must normally be from 0 to 59. An API may
- // allow the value 60 if it allows leap-seconds.
+ // Seconds of a minute. Must be greater than or equal to 0 and typically must
+ // be less than or equal to 59. An API may allow the value 60 if it allows
+ // leap-seconds.
int32 seconds = 3;
- // Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+ // Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
+ // and less than or equal to 999,999,999.
int32 nanos = 4;
}
diff --git a/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPoliciesGrpc.java b/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPoliciesGrpc.java
new file mode 100644
index 0000000000..3b5fdfbff1
--- /dev/null
+++ b/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPoliciesGrpc.java
@@ -0,0 +1,1067 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.iam.v3beta;
+
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+
+/**
+ *
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+@io.grpc.stub.annotations.GrpcGenerated
+public final class AccessPoliciesGrpc {
+
+ private AccessPoliciesGrpc() {}
+
+ public static final java.lang.String SERVICE_NAME = "google.iam.v3beta.AccessPolicies";
+
+ // Static method descriptors that strictly reflect the proto.
+ private static volatile io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.CreateAccessPolicyRequest, com.google.longrunning.Operation>
+ getCreateAccessPolicyMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "CreateAccessPolicy",
+ requestType = com.google.iam.v3beta.CreateAccessPolicyRequest.class,
+ responseType = com.google.longrunning.Operation.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.CreateAccessPolicyRequest, com.google.longrunning.Operation>
+ getCreateAccessPolicyMethod() {
+ io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.CreateAccessPolicyRequest, com.google.longrunning.Operation>
+ getCreateAccessPolicyMethod;
+ if ((getCreateAccessPolicyMethod = AccessPoliciesGrpc.getCreateAccessPolicyMethod) == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ if ((getCreateAccessPolicyMethod = AccessPoliciesGrpc.getCreateAccessPolicyMethod)
+ == null) {
+ AccessPoliciesGrpc.getCreateAccessPolicyMethod =
+ getCreateAccessPolicyMethod =
+ io.grpc.MethodDescriptor
+ .
+ newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "CreateAccessPolicy"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.CreateAccessPolicyRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.longrunning.Operation.getDefaultInstance()))
+ .setSchemaDescriptor(
+ new AccessPoliciesMethodDescriptorSupplier("CreateAccessPolicy"))
+ .build();
+ }
+ }
+ }
+ return getCreateAccessPolicyMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.GetAccessPolicyRequest, com.google.iam.v3beta.AccessPolicy>
+ getGetAccessPolicyMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "GetAccessPolicy",
+ requestType = com.google.iam.v3beta.GetAccessPolicyRequest.class,
+ responseType = com.google.iam.v3beta.AccessPolicy.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.GetAccessPolicyRequest, com.google.iam.v3beta.AccessPolicy>
+ getGetAccessPolicyMethod() {
+ io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.GetAccessPolicyRequest, com.google.iam.v3beta.AccessPolicy>
+ getGetAccessPolicyMethod;
+ if ((getGetAccessPolicyMethod = AccessPoliciesGrpc.getGetAccessPolicyMethod) == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ if ((getGetAccessPolicyMethod = AccessPoliciesGrpc.getGetAccessPolicyMethod) == null) {
+ AccessPoliciesGrpc.getGetAccessPolicyMethod =
+ getGetAccessPolicyMethod =
+ io.grpc.MethodDescriptor
+ .
+ newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetAccessPolicy"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.GetAccessPolicyRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.AccessPolicy.getDefaultInstance()))
+ .setSchemaDescriptor(
+ new AccessPoliciesMethodDescriptorSupplier("GetAccessPolicy"))
+ .build();
+ }
+ }
+ }
+ return getGetAccessPolicyMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.UpdateAccessPolicyRequest, com.google.longrunning.Operation>
+ getUpdateAccessPolicyMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "UpdateAccessPolicy",
+ requestType = com.google.iam.v3beta.UpdateAccessPolicyRequest.class,
+ responseType = com.google.longrunning.Operation.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.UpdateAccessPolicyRequest, com.google.longrunning.Operation>
+ getUpdateAccessPolicyMethod() {
+ io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.UpdateAccessPolicyRequest, com.google.longrunning.Operation>
+ getUpdateAccessPolicyMethod;
+ if ((getUpdateAccessPolicyMethod = AccessPoliciesGrpc.getUpdateAccessPolicyMethod) == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ if ((getUpdateAccessPolicyMethod = AccessPoliciesGrpc.getUpdateAccessPolicyMethod)
+ == null) {
+ AccessPoliciesGrpc.getUpdateAccessPolicyMethod =
+ getUpdateAccessPolicyMethod =
+ io.grpc.MethodDescriptor
+ .
+ newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "UpdateAccessPolicy"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.longrunning.Operation.getDefaultInstance()))
+ .setSchemaDescriptor(
+ new AccessPoliciesMethodDescriptorSupplier("UpdateAccessPolicy"))
+ .build();
+ }
+ }
+ }
+ return getUpdateAccessPolicyMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.DeleteAccessPolicyRequest, com.google.longrunning.Operation>
+ getDeleteAccessPolicyMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "DeleteAccessPolicy",
+ requestType = com.google.iam.v3beta.DeleteAccessPolicyRequest.class,
+ responseType = com.google.longrunning.Operation.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.DeleteAccessPolicyRequest, com.google.longrunning.Operation>
+ getDeleteAccessPolicyMethod() {
+ io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.DeleteAccessPolicyRequest, com.google.longrunning.Operation>
+ getDeleteAccessPolicyMethod;
+ if ((getDeleteAccessPolicyMethod = AccessPoliciesGrpc.getDeleteAccessPolicyMethod) == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ if ((getDeleteAccessPolicyMethod = AccessPoliciesGrpc.getDeleteAccessPolicyMethod)
+ == null) {
+ AccessPoliciesGrpc.getDeleteAccessPolicyMethod =
+ getDeleteAccessPolicyMethod =
+ io.grpc.MethodDescriptor
+ .
+ newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteAccessPolicy"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.longrunning.Operation.getDefaultInstance()))
+ .setSchemaDescriptor(
+ new AccessPoliciesMethodDescriptorSupplier("DeleteAccessPolicy"))
+ .build();
+ }
+ }
+ }
+ return getDeleteAccessPolicyMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.ListAccessPoliciesRequest,
+ com.google.iam.v3beta.ListAccessPoliciesResponse>
+ getListAccessPoliciesMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "ListAccessPolicies",
+ requestType = com.google.iam.v3beta.ListAccessPoliciesRequest.class,
+ responseType = com.google.iam.v3beta.ListAccessPoliciesResponse.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.ListAccessPoliciesRequest,
+ com.google.iam.v3beta.ListAccessPoliciesResponse>
+ getListAccessPoliciesMethod() {
+ io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.ListAccessPoliciesRequest,
+ com.google.iam.v3beta.ListAccessPoliciesResponse>
+ getListAccessPoliciesMethod;
+ if ((getListAccessPoliciesMethod = AccessPoliciesGrpc.getListAccessPoliciesMethod) == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ if ((getListAccessPoliciesMethod = AccessPoliciesGrpc.getListAccessPoliciesMethod)
+ == null) {
+ AccessPoliciesGrpc.getListAccessPoliciesMethod =
+ getListAccessPoliciesMethod =
+ io.grpc.MethodDescriptor
+ .
+ newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ListAccessPolicies"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.ListAccessPoliciesRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.ListAccessPoliciesResponse
+ .getDefaultInstance()))
+ .setSchemaDescriptor(
+ new AccessPoliciesMethodDescriptorSupplier("ListAccessPolicies"))
+ .build();
+ }
+ }
+ }
+ return getListAccessPoliciesMethod;
+ }
+
+ private static volatile io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse>
+ getSearchAccessPolicyBindingsMethod;
+
+ @io.grpc.stub.annotations.RpcMethod(
+ fullMethodName = SERVICE_NAME + '/' + "SearchAccessPolicyBindings",
+ requestType = com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.class,
+ responseType = com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.class,
+ methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+ public static io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse>
+ getSearchAccessPolicyBindingsMethod() {
+ io.grpc.MethodDescriptor<
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse>
+ getSearchAccessPolicyBindingsMethod;
+ if ((getSearchAccessPolicyBindingsMethod =
+ AccessPoliciesGrpc.getSearchAccessPolicyBindingsMethod)
+ == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ if ((getSearchAccessPolicyBindingsMethod =
+ AccessPoliciesGrpc.getSearchAccessPolicyBindingsMethod)
+ == null) {
+ AccessPoliciesGrpc.getSearchAccessPolicyBindingsMethod =
+ getSearchAccessPolicyBindingsMethod =
+ io.grpc.MethodDescriptor
+ .
+ newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(
+ generateFullMethodName(SERVICE_NAME, "SearchAccessPolicyBindings"))
+ .setSampledToLocalTracing(true)
+ .setRequestMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest
+ .getDefaultInstance()))
+ .setResponseMarshaller(
+ io.grpc.protobuf.ProtoUtils.marshaller(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse
+ .getDefaultInstance()))
+ .setSchemaDescriptor(
+ new AccessPoliciesMethodDescriptorSupplier("SearchAccessPolicyBindings"))
+ .build();
+ }
+ }
+ }
+ return getSearchAccessPolicyBindingsMethod;
+ }
+
+ /** Creates a new async stub that supports all call types for the service */
+ public static AccessPoliciesStub newStub(io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public AccessPoliciesStub newStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesStub(channel, callOptions);
+ }
+ };
+ return AccessPoliciesStub.newStub(factory, channel);
+ }
+
+ /** Creates a new blocking-style stub that supports all types of calls on the service */
+ public static AccessPoliciesBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public AccessPoliciesBlockingV2Stub newStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesBlockingV2Stub(channel, callOptions);
+ }
+ };
+ return AccessPoliciesBlockingV2Stub.newStub(factory, channel);
+ }
+
+ /**
+ * Creates a new blocking-style stub that supports unary and streaming output calls on the service
+ */
+ public static AccessPoliciesBlockingStub newBlockingStub(io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public AccessPoliciesBlockingStub newStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesBlockingStub(channel, callOptions);
+ }
+ };
+ return AccessPoliciesBlockingStub.newStub(factory, channel);
+ }
+
+ /** Creates a new ListenableFuture-style stub that supports unary calls on the service */
+ public static AccessPoliciesFutureStub newFutureStub(io.grpc.Channel channel) {
+ io.grpc.stub.AbstractStub.StubFactory factory =
+ new io.grpc.stub.AbstractStub.StubFactory() {
+ @java.lang.Override
+ public AccessPoliciesFutureStub newStub(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesFutureStub(channel, callOptions);
+ }
+ };
+ return AccessPoliciesFutureStub.newStub(factory, channel);
+ }
+
+ /**
+ *
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+ public interface AsyncService {
+
+ /**
+ *
+ *
+ *
+ * Creates an access policy, and returns a long running operation.
+ *
+ */
+ default void createAccessPolicy(
+ com.google.iam.v3beta.CreateAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+ getCreateAccessPolicyMethod(), responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Gets an access policy.
+ *
+ */
+ default void getAccessPolicy(
+ com.google.iam.v3beta.GetAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+ getGetAccessPolicyMethod(), responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Updates an access policy.
+ *
+ */
+ default void updateAccessPolicy(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+ getUpdateAccessPolicyMethod(), responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Deletes an access policy.
+ *
+ */
+ default void deleteAccessPolicy(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+ getDeleteAccessPolicyMethod(), responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Lists access policies.
+ *
+ */
+ default void listAccessPolicies(
+ com.google.iam.v3beta.ListAccessPoliciesRequest request,
+ io.grpc.stub.StreamObserver
+ responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+ getListAccessPoliciesMethod(), responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns all policy bindings that bind a specific policy if a user has
+ * searchPolicyBindings permission on that policy.
+ *
+ */
+ default void searchAccessPolicyBindings(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest request,
+ io.grpc.stub.StreamObserver
+ responseObserver) {
+ io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
+ getSearchAccessPolicyBindingsMethod(), responseObserver);
+ }
+ }
+
+ /**
+ * Base class for the server implementation of the service AccessPolicies.
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+ public abstract static class AccessPoliciesImplBase
+ implements io.grpc.BindableService, AsyncService {
+
+ @java.lang.Override
+ public final io.grpc.ServerServiceDefinition bindService() {
+ return AccessPoliciesGrpc.bindService(this);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do asynchronous rpc calls to service AccessPolicies.
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+ public static final class AccessPoliciesStub
+ extends io.grpc.stub.AbstractAsyncStub {
+ private AccessPoliciesStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected AccessPoliciesStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesStub(channel, callOptions);
+ }
+
+ /**
+ *
+ *
+ *
+ * Creates an access policy, and returns a long running operation.
+ *
+ */
+ public void createAccessPolicy(
+ com.google.iam.v3beta.CreateAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getCreateAccessPolicyMethod(), getCallOptions()),
+ request,
+ responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Gets an access policy.
+ *
+ */
+ public void getAccessPolicy(
+ com.google.iam.v3beta.GetAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getGetAccessPolicyMethod(), getCallOptions()),
+ request,
+ responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Updates an access policy.
+ *
+ */
+ public void updateAccessPolicy(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getUpdateAccessPolicyMethod(), getCallOptions()),
+ request,
+ responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Deletes an access policy.
+ *
+ */
+ public void deleteAccessPolicy(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getDeleteAccessPolicyMethod(), getCallOptions()),
+ request,
+ responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Lists access policies.
+ *
+ */
+ public void listAccessPolicies(
+ com.google.iam.v3beta.ListAccessPoliciesRequest request,
+ io.grpc.stub.StreamObserver
+ responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getListAccessPoliciesMethod(), getCallOptions()),
+ request,
+ responseObserver);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns all policy bindings that bind a specific policy if a user has
+ * searchPolicyBindings permission on that policy.
+ *
+ */
+ public void searchAccessPolicyBindings(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest request,
+ io.grpc.stub.StreamObserver
+ responseObserver) {
+ io.grpc.stub.ClientCalls.asyncUnaryCall(
+ getChannel().newCall(getSearchAccessPolicyBindingsMethod(), getCallOptions()),
+ request,
+ responseObserver);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do synchronous rpc calls to service AccessPolicies.
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+ public static final class AccessPoliciesBlockingV2Stub
+ extends io.grpc.stub.AbstractBlockingStub {
+ private AccessPoliciesBlockingV2Stub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected AccessPoliciesBlockingV2Stub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesBlockingV2Stub(channel, callOptions);
+ }
+
+ /**
+ *
+ *
+ *
+ * Creates an access policy, and returns a long running operation.
+ *
+ */
+ public com.google.longrunning.Operation createAccessPolicy(
+ com.google.iam.v3beta.CreateAccessPolicyRequest request) throws io.grpc.StatusException {
+ return io.grpc.stub.ClientCalls.blockingV2UnaryCall(
+ getChannel(), getCreateAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Gets an access policy.
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicy(
+ com.google.iam.v3beta.GetAccessPolicyRequest request) throws io.grpc.StatusException {
+ return io.grpc.stub.ClientCalls.blockingV2UnaryCall(
+ getChannel(), getGetAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Updates an access policy.
+ *
+ */
+ public com.google.longrunning.Operation updateAccessPolicy(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest request) throws io.grpc.StatusException {
+ return io.grpc.stub.ClientCalls.blockingV2UnaryCall(
+ getChannel(), getUpdateAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Deletes an access policy.
+ *
+ */
+ public com.google.longrunning.Operation deleteAccessPolicy(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest request) throws io.grpc.StatusException {
+ return io.grpc.stub.ClientCalls.blockingV2UnaryCall(
+ getChannel(), getDeleteAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Lists access policies.
+ *
+ */
+ public com.google.iam.v3beta.ListAccessPoliciesResponse listAccessPolicies(
+ com.google.iam.v3beta.ListAccessPoliciesRequest request) throws io.grpc.StatusException {
+ return io.grpc.stub.ClientCalls.blockingV2UnaryCall(
+ getChannel(), getListAccessPoliciesMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns all policy bindings that bind a specific policy if a user has
+ * searchPolicyBindings permission on that policy.
+ *
+ */
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsResponse searchAccessPolicyBindings(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest request)
+ throws io.grpc.StatusException {
+ return io.grpc.stub.ClientCalls.blockingV2UnaryCall(
+ getChannel(), getSearchAccessPolicyBindingsMethod(), getCallOptions(), request);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do limited synchronous rpc calls to service AccessPolicies.
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+ public static final class AccessPoliciesBlockingStub
+ extends io.grpc.stub.AbstractBlockingStub {
+ private AccessPoliciesBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected AccessPoliciesBlockingStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesBlockingStub(channel, callOptions);
+ }
+
+ /**
+ *
+ *
+ *
+ * Creates an access policy, and returns a long running operation.
+ *
+ */
+ public com.google.longrunning.Operation createAccessPolicy(
+ com.google.iam.v3beta.CreateAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getCreateAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Gets an access policy.
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicy(
+ com.google.iam.v3beta.GetAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getGetAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Updates an access policy.
+ *
+ */
+ public com.google.longrunning.Operation updateAccessPolicy(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getUpdateAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Deletes an access policy.
+ *
+ */
+ public com.google.longrunning.Operation deleteAccessPolicy(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getDeleteAccessPolicyMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Lists access policies.
+ *
+ */
+ public com.google.iam.v3beta.ListAccessPoliciesResponse listAccessPolicies(
+ com.google.iam.v3beta.ListAccessPoliciesRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getListAccessPoliciesMethod(), getCallOptions(), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns all policy bindings that bind a specific policy if a user has
+ * searchPolicyBindings permission on that policy.
+ *
+ */
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsResponse searchAccessPolicyBindings(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest request) {
+ return io.grpc.stub.ClientCalls.blockingUnaryCall(
+ getChannel(), getSearchAccessPolicyBindingsMethod(), getCallOptions(), request);
+ }
+ }
+
+ /**
+ * A stub to allow clients to do ListenableFuture-style rpc calls to service AccessPolicies.
+ *
+ *
+ * Manages Identity and Access Management (IAM) access policies.
+ *
+ */
+ public static final class AccessPoliciesFutureStub
+ extends io.grpc.stub.AbstractFutureStub {
+ private AccessPoliciesFutureStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected AccessPoliciesFutureStub build(
+ io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+ return new AccessPoliciesFutureStub(channel, callOptions);
+ }
+
+ /**
+ *
+ *
+ *
+ * Creates an access policy, and returns a long running operation.
+ *
+ */
+ public com.google.common.util.concurrent.ListenableFuture
+ createAccessPolicy(com.google.iam.v3beta.CreateAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getCreateAccessPolicyMethod(), getCallOptions()), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Gets an access policy.
+ *
+ */
+ public com.google.common.util.concurrent.ListenableFuture
+ getAccessPolicy(com.google.iam.v3beta.GetAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getGetAccessPolicyMethod(), getCallOptions()), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Updates an access policy.
+ *
+ */
+ public com.google.common.util.concurrent.ListenableFuture
+ updateAccessPolicy(com.google.iam.v3beta.UpdateAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getUpdateAccessPolicyMethod(), getCallOptions()), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Deletes an access policy.
+ *
+ */
+ public com.google.common.util.concurrent.ListenableFuture
+ deleteAccessPolicy(com.google.iam.v3beta.DeleteAccessPolicyRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getDeleteAccessPolicyMethod(), getCallOptions()), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Lists access policies.
+ *
+ */
+ public com.google.common.util.concurrent.ListenableFuture<
+ com.google.iam.v3beta.ListAccessPoliciesResponse>
+ listAccessPolicies(com.google.iam.v3beta.ListAccessPoliciesRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getListAccessPoliciesMethod(), getCallOptions()), request);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns all policy bindings that bind a specific policy if a user has
+ * searchPolicyBindings permission on that policy.
+ *
+ */
+ public com.google.common.util.concurrent.ListenableFuture<
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse>
+ searchAccessPolicyBindings(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest request) {
+ return io.grpc.stub.ClientCalls.futureUnaryCall(
+ getChannel().newCall(getSearchAccessPolicyBindingsMethod(), getCallOptions()), request);
+ }
+ }
+
+ private static final int METHODID_CREATE_ACCESS_POLICY = 0;
+ private static final int METHODID_GET_ACCESS_POLICY = 1;
+ private static final int METHODID_UPDATE_ACCESS_POLICY = 2;
+ private static final int METHODID_DELETE_ACCESS_POLICY = 3;
+ private static final int METHODID_LIST_ACCESS_POLICIES = 4;
+ private static final int METHODID_SEARCH_ACCESS_POLICY_BINDINGS = 5;
+
+ private static final class MethodHandlers
+ implements io.grpc.stub.ServerCalls.UnaryMethod,
+ io.grpc.stub.ServerCalls.ServerStreamingMethod,
+ io.grpc.stub.ServerCalls.ClientStreamingMethod,
+ io.grpc.stub.ServerCalls.BidiStreamingMethod {
+ private final AsyncService serviceImpl;
+ private final int methodId;
+
+ MethodHandlers(AsyncService serviceImpl, int methodId) {
+ this.serviceImpl = serviceImpl;
+ this.methodId = methodId;
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ case METHODID_CREATE_ACCESS_POLICY:
+ serviceImpl.createAccessPolicy(
+ (com.google.iam.v3beta.CreateAccessPolicyRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_GET_ACCESS_POLICY:
+ serviceImpl.getAccessPolicy(
+ (com.google.iam.v3beta.GetAccessPolicyRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_UPDATE_ACCESS_POLICY:
+ serviceImpl.updateAccessPolicy(
+ (com.google.iam.v3beta.UpdateAccessPolicyRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_DELETE_ACCESS_POLICY:
+ serviceImpl.deleteAccessPolicy(
+ (com.google.iam.v3beta.DeleteAccessPolicyRequest) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_LIST_ACCESS_POLICIES:
+ serviceImpl.listAccessPolicies(
+ (com.google.iam.v3beta.ListAccessPoliciesRequest) request,
+ (io.grpc.stub.StreamObserver)
+ responseObserver);
+ break;
+ case METHODID_SEARCH_ACCESS_POLICY_BINDINGS:
+ serviceImpl.searchAccessPolicyBindings(
+ (com.google.iam.v3beta.SearchAccessPolicyBindingsRequest) request,
+ (io.grpc.stub.StreamObserver<
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse>)
+ responseObserver);
+ break;
+ default:
+ throw new AssertionError();
+ }
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public io.grpc.stub.StreamObserver invoke(
+ io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ default:
+ throw new AssertionError();
+ }
+ }
+ }
+
+ public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
+ return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+ .addMethod(
+ getCreateAccessPolicyMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.google.iam.v3beta.CreateAccessPolicyRequest,
+ com.google.longrunning.Operation>(service, METHODID_CREATE_ACCESS_POLICY)))
+ .addMethod(
+ getGetAccessPolicyMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.google.iam.v3beta.GetAccessPolicyRequest,
+ com.google.iam.v3beta.AccessPolicy>(service, METHODID_GET_ACCESS_POLICY)))
+ .addMethod(
+ getUpdateAccessPolicyMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.google.iam.v3beta.UpdateAccessPolicyRequest,
+ com.google.longrunning.Operation>(service, METHODID_UPDATE_ACCESS_POLICY)))
+ .addMethod(
+ getDeleteAccessPolicyMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.google.iam.v3beta.DeleteAccessPolicyRequest,
+ com.google.longrunning.Operation>(service, METHODID_DELETE_ACCESS_POLICY)))
+ .addMethod(
+ getListAccessPoliciesMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.google.iam.v3beta.ListAccessPoliciesRequest,
+ com.google.iam.v3beta.ListAccessPoliciesResponse>(
+ service, METHODID_LIST_ACCESS_POLICIES)))
+ .addMethod(
+ getSearchAccessPolicyBindingsMethod(),
+ io.grpc.stub.ServerCalls.asyncUnaryCall(
+ new MethodHandlers<
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse>(
+ service, METHODID_SEARCH_ACCESS_POLICY_BINDINGS)))
+ .build();
+ }
+
+ private abstract static class AccessPoliciesBaseDescriptorSupplier
+ implements io.grpc.protobuf.ProtoFileDescriptorSupplier,
+ io.grpc.protobuf.ProtoServiceDescriptorSupplier {
+ AccessPoliciesBaseDescriptorSupplier() {}
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto.getDescriptor();
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() {
+ return getFileDescriptor().findServiceByName("AccessPolicies");
+ }
+ }
+
+ private static final class AccessPoliciesFileDescriptorSupplier
+ extends AccessPoliciesBaseDescriptorSupplier {
+ AccessPoliciesFileDescriptorSupplier() {}
+ }
+
+ private static final class AccessPoliciesMethodDescriptorSupplier
+ extends AccessPoliciesBaseDescriptorSupplier
+ implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
+ private final java.lang.String methodName;
+
+ AccessPoliciesMethodDescriptorSupplier(java.lang.String methodName) {
+ this.methodName = methodName;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() {
+ return getServiceDescriptor().findMethodByName(methodName);
+ }
+ }
+
+ private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
+
+ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+ io.grpc.ServiceDescriptor result = serviceDescriptor;
+ if (result == null) {
+ synchronized (AccessPoliciesGrpc.class) {
+ result = serviceDescriptor;
+ if (result == null) {
+ serviceDescriptor =
+ result =
+ io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
+ .setSchemaDescriptor(new AccessPoliciesFileDescriptorSupplier())
+ .addMethod(getCreateAccessPolicyMethod())
+ .addMethod(getGetAccessPolicyMethod())
+ .addMethod(getUpdateAccessPolicyMethod())
+ .addMethod(getDeleteAccessPolicyMethod())
+ .addMethod(getListAccessPoliciesMethod())
+ .addMethod(getSearchAccessPolicyBindingsMethod())
+ .build();
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsGrpc.java b/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsGrpc.java
index 9fde0cbfe7..6e8e318907 100644
--- a/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsGrpc.java
+++ b/java-iam/grpc-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsGrpc.java
@@ -379,7 +379,7 @@ public interface AsyncService {
*
* Creates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is created, the policy is applied to the target.
+ * After the binding is created, the policy is applied to the target.
*
*/
default void createPolicyBinding(
@@ -409,9 +409,7 @@ default void getPolicyBinding(
*
* Updates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on the policy and target in the
- * binding to update, and the IAM permission to remove the existing policy
- * from the binding. Target is immutable and cannot be updated. Once the
- * binding is updated, the new policy is applied to the target.
+ * binding to update. Target and policy are immutable and cannot be updated.
*
*/
default void updatePolicyBinding(
@@ -427,7 +425,7 @@ default void updatePolicyBinding(
*
* Deletes a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is deleted, the policy no longer applies to the target.
+ * After the binding is deleted, the policy no longer applies to the target.
*
*/
default void deletePolicyBinding(
@@ -511,7 +509,7 @@ protected PolicyBindingsStub build(io.grpc.Channel channel, io.grpc.CallOptions
*
* Creates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is created, the policy is applied to the target.
+ * After the binding is created, the policy is applied to the target.
*
*/
public void createPolicyBinding(
@@ -545,9 +543,7 @@ public void getPolicyBinding(
*
* Updates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on the policy and target in the
- * binding to update, and the IAM permission to remove the existing policy
- * from the binding. Target is immutable and cannot be updated. Once the
- * binding is updated, the new policy is applied to the target.
+ * binding to update. Target and policy are immutable and cannot be updated.
*
*/
public void updatePolicyBinding(
@@ -565,7 +561,7 @@ public void updatePolicyBinding(
*
* Deletes a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is deleted, the policy no longer applies to the target.
+ * After the binding is deleted, the policy no longer applies to the target.
*
*/
public void deletePolicyBinding(
@@ -639,7 +635,7 @@ protected PolicyBindingsBlockingV2Stub build(
*
* Creates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is created, the policy is applied to the target.
+ * After the binding is created, the policy is applied to the target.
*
*/
public com.google.longrunning.Operation createPolicyBinding(
@@ -667,9 +663,7 @@ public com.google.iam.v3beta.PolicyBinding getPolicyBinding(
*
* Updates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on the policy and target in the
- * binding to update, and the IAM permission to remove the existing policy
- * from the binding. Target is immutable and cannot be updated. Once the
- * binding is updated, the new policy is applied to the target.
+ * binding to update. Target and policy are immutable and cannot be updated.
*
*/
public com.google.longrunning.Operation updatePolicyBinding(
@@ -684,7 +678,7 @@ public com.google.longrunning.Operation updatePolicyBinding(
*
* Deletes a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is deleted, the policy no longer applies to the target.
+ * After the binding is deleted, the policy no longer applies to the target.
*
*/
public com.google.longrunning.Operation deletePolicyBinding(
@@ -748,7 +742,7 @@ protected PolicyBindingsBlockingStub build(
*
* Creates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is created, the policy is applied to the target.
+ * After the binding is created, the policy is applied to the target.
*
*/
public com.google.longrunning.Operation createPolicyBinding(
@@ -776,9 +770,7 @@ public com.google.iam.v3beta.PolicyBinding getPolicyBinding(
*
* Updates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on the policy and target in the
- * binding to update, and the IAM permission to remove the existing policy
- * from the binding. Target is immutable and cannot be updated. Once the
- * binding is updated, the new policy is applied to the target.
+ * binding to update. Target and policy are immutable and cannot be updated.
*
*/
public com.google.longrunning.Operation updatePolicyBinding(
@@ -793,7 +785,7 @@ public com.google.longrunning.Operation updatePolicyBinding(
*
* Deletes a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is deleted, the policy no longer applies to the target.
+ * After the binding is deleted, the policy no longer applies to the target.
*
*/
public com.google.longrunning.Operation deletePolicyBinding(
@@ -856,7 +848,7 @@ protected PolicyBindingsFutureStub build(
*
* Creates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is created, the policy is applied to the target.
+ * After the binding is created, the policy is applied to the target.
*
*/
public com.google.common.util.concurrent.ListenableFuture
@@ -884,9 +876,7 @@ protected PolicyBindingsFutureStub build(
*
* Updates a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on the policy and target in the
- * binding to update, and the IAM permission to remove the existing policy
- * from the binding. Target is immutable and cannot be updated. Once the
- * binding is updated, the new policy is applied to the target.
+ * binding to update. Target and policy are immutable and cannot be updated.
*
*/
public com.google.common.util.concurrent.ListenableFuture
@@ -901,7 +891,7 @@ protected PolicyBindingsFutureStub build(
*
* Deletes a policy binding and returns a long-running operation.
* Callers will need the IAM permissions on both the policy and target.
- * Once the binding is deleted, the policy no longer applies to the target.
+ * After the binding is deleted, the policy no longer applies to the target.
*
*/
public com.google.common.util.concurrent.ListenableFuture
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPoliciesProto.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPoliciesProto.java
new file mode 100644
index 0000000000..5aa0b4b3b5
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPoliciesProto.java
@@ -0,0 +1,280 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public final class AccessPoliciesProto extends com.google.protobuf.GeneratedFile {
+ private AccessPoliciesProto() {}
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "AccessPoliciesProto");
+ }
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_CreateAccessPolicyRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_CreateAccessPolicyRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_GetAccessPolicyRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_GetAccessPolicyRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_ListAccessPoliciesRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_ListAccessPoliciesRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_ListAccessPoliciesResponse_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_ListAccessPoliciesResponse_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ return descriptor;
+ }
+
+ private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
+
+ static {
+ java.lang.String[] descriptorData = {
+ "\n"
+ + "/google/iam/v3beta/access_policies_serv"
+ + "ice.proto\022\021google.iam.v3beta\032\034google/api"
+ + "/annotations.proto\032\027google/api/client.pr"
+ + "oto\032\037google/api/field_behavior.proto\032\031go"
+ + "ogle/api/resource.proto\032/google/iam/v3beta/access_policy_resources.proto\032*google"
+ + "/iam/v3beta/operation_metadata.proto\0320google/iam/v3beta/policy_binding_resources"
+ + ".proto\032#google/longrunning/operations.proto\032\033google/protobuf/empty.proto\"\314\001\n"
+ + "\031CreateAccessPolicyRequest\0227\n"
+ + "\006parent\030\001 \001(\tB\'"
+ + "\340A\002\372A!\022\037iam.googleapis.com/AccessPolicy\022\035\n"
+ + "\020access_policy_id\030\002 \001(\tB\003\340A\002\022;\n\r"
+ + "access_policy\030\003"
+ + " \001(\0132\037.google.iam.v3beta.AccessPolicyB\003\340A\002\022\032\n\r"
+ + "validate_only\030\004 \001(\010B\003\340A\001\"O\n"
+ + "\026GetAccessPolicyRequest\0225\n"
+ + "\004name\030\001 \001(\tB\'\340A\002\372A!\n"
+ + "\037iam.googleapis.com/AccessPolicy\"t\n"
+ + "\031UpdateAccessPolicyRequest\022;\n\r"
+ + "access_policy\030\001"
+ + " \001(\0132\037.google.iam.v3beta.AccessPolicyB\003\340A\002\022\032\n\r"
+ + "validate_only\030\002 \001(\010B\003\340A\001\"\225\001\n"
+ + "\031DeleteAccessPolicyRequest\0225\n"
+ + "\004name\030\001 \001(\tB\'\340A\002\372A!\n"
+ + "\037iam.googleapis.com/AccessPolicy\022\021\n"
+ + "\004etag\030\002 \001(\tB\003\340A\001\022\032\n\r"
+ + "validate_only\030\003 \001(\010B\003\340A\001\022\022\n"
+ + "\005force\030\004 \001(\010B\003\340A\001\"\205\001\n"
+ + "\031ListAccessPoliciesRequest\0227\n"
+ + "\006parent\030\001 \001("
+ + "\tB\'\340A\002\372A!\022\037iam.googleapis.com/AccessPolicy\022\026\n"
+ + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n"
+ + "page_token\030\003 \001(\tB\003\340A\001\"t\n"
+ + "\032ListAccessPoliciesResponse\0228\n"
+ + "\017access_policies\030\001 \003(\0132\037.google.iam.v3beta.AccessPolicy\022\034\n"
+ + "\017next_page_token\030\002 \001(\tB\003\340A\001\"\213\001\n"
+ + "!SearchAccessPolicyBindingsRequest\0225\n"
+ + "\004name\030\001 \001(\tB\'\340A\002\372A!\n"
+ + "\037iam.googleapis.com/AccessPolicy\022\026\n"
+ + "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n"
+ + "page_token\030\003 \001(\tB\003\340A\001\"}\n"
+ + "\"SearchAccessPolicyBindingsResponse\0229\n"
+ + "\017policy_bindings\030\001 \003(\0132 .google.iam.v3beta.PolicyBinding\022\034\n"
+ + "\017next_page_token\030\002 \001(\tB\003\340A\0012\276\021\n"
+ + "\016AccessPolicies\022\224\003\n"
+ + "\022CreateAccessPolicy\022,.go"
+ + "ogle.iam.v3beta.CreateAccessPolicyRequest\032\035.google.longrunning.Operation\"\260\002\312A!\n"
+ + "\014AccessPolicy\022\021OperationMetadata\332A%parent"
+ + ",access_policy,access_policy_id\202\323\344\223\002\335\001\"6"
+ + "/v3beta/{parent=projects/*/locations/*}/accessPolicies:\r"
+ + "access_policyZF\"5/v3beta/{parent=folders/*/locations/*}/accessPolicies:\r"
+ + "access_policyZL\";/v3beta/{parent=organizations/*/locations/*}/accessPolicies:\r"
+ + "access_policy\022\236\002\n"
+ + "\017GetAccessPolicy\022).google.iam.v3beta.GetAccessPolicyReque"
+ + "st\032\037.google.iam.v3beta.AccessPolicy\"\276\001\332A"
+ + "\004name\202\323\344\223\002\260\001\0226/v3beta/{name=projects/*/l"
+ + "ocations/*/accessPolicies/*}Z7\0225/v3beta/{name=folders/*/locations/*/accessPolici"
+ + "es/*}Z=\022;/v3beta/{name=organizations/*/locations/*/accessPolicies/*}\022\226\003\n"
+ + "\022UpdateAccessPolicy\022,.google.iam.v3beta.UpdateAc"
+ + "cessPolicyRequest\032\035.google.longrunning.Operation\"\262\002\312A!\n"
+ + "\014AccessPolicy\022\021OperationM"
+ + "etadata\202\323\344\223\002\207\0022D/v3beta/{access_policy.n"
+ + "ame=projects/*/locations/*/accessPolicies/*}:\r"
+ + "access_policyZT2C/v3beta/{access_p"
+ + "olicy.name=folders/*/locations/*/accessPolicies/*}:\r"
+ + "access_policyZZ2I/v3beta/{ac"
+ + "cess_policy.name=organizations/*/locations/*/accessPolicies/*}:\r"
+ + "access_policy\022\317\002\n"
+ + "\022DeleteAccessPolicy\022,.google.iam.v3beta"
+ + ".DeleteAccessPolicyRequest\032\035.google.longrunning.Operation\"\353\001\312A*\n"
+ + "\025google.protobuf"
+ + ".Empty\022\021OperationMetadata\332A\004name\202\323\344\223\002\260\001*"
+ + "6/v3beta/{name=projects/*/locations/*/accessPolicies/*}Z7*5/v3beta/{name=folders"
+ + "/*/locations/*/accessPolicies/*}Z=*;/v3b"
+ + "eta/{name=organizations/*/locations/*/accessPolicies/*}\022\264\002\n"
+ + "\022ListAccessPolicies\022,.google.iam.v3beta.ListAccessPoliciesReq"
+ + "uest\032-.google.iam.v3beta.ListAccessPolic"
+ + "iesResponse\"\300\001\332A\006parent\202\323\344\223\002\260\001\0226/v3beta/"
+ + "{parent=projects/*/locations/*}/accessPoliciesZ7\0225/v3beta/{parent=folders/*/loca"
+ + "tions/*}/accessPoliciesZ=\022;/v3beta/{pare"
+ + "nt=organizations/*/locations/*}/accessPolicies\022\211\003\n"
+ + "\032SearchAccessPolicyBindings\0224.google.iam.v3beta.SearchAccessPolicyBind"
+ + "ingsRequest\0325.google.iam.v3beta.SearchAc"
+ + "cessPolicyBindingsResponse\"\375\001\332A\004name\202\323\344\223"
+ + "\002\357\001\022P/v3beta/{name=organizations/*/locat"
+ + "ions/*/accessPolicies/*}:searchPolicyBindingsZL\022J/v3beta/{name=folders/*/locatio"
+ + "ns/*/accessPolicies/*}:searchPolicyBindingsZM\022K/v3beta/{name=projects/*/location"
+ + "s/*/accessPolicies/*}:searchPolicyBindin"
+ + "gs\032F\312A\022iam.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platformB\221\001\n"
+ + "\025com.google.iam.v3betaB\023AccessPoliciesProt"
+ + "oP\001Z-cloud.google.com/go/iam/apiv3beta/i"
+ + "ampb;iampb\252\002\027Google.Cloud.Iam.V3Beta\312\002\027G"
+ + "oogle\\Cloud\\Iam\\V3betab\006proto3"
+ };
+ descriptor =
+ com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
+ descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.google.api.AnnotationsProto.getDescriptor(),
+ com.google.api.ClientProto.getDescriptor(),
+ com.google.api.FieldBehaviorProto.getDescriptor(),
+ com.google.api.ResourceProto.getDescriptor(),
+ com.google.iam.v3beta.AccessPolicyResourcesProto.getDescriptor(),
+ com.google.iam.v3beta.OperationMetadataProto.getDescriptor(),
+ com.google.iam.v3beta.PolicyBindingResourcesProto.getDescriptor(),
+ com.google.longrunning.OperationsProto.getDescriptor(),
+ com.google.protobuf.EmptyProto.getDescriptor(),
+ });
+ internal_static_google_iam_v3beta_CreateAccessPolicyRequest_descriptor =
+ getDescriptor().getMessageType(0);
+ internal_static_google_iam_v3beta_CreateAccessPolicyRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_CreateAccessPolicyRequest_descriptor,
+ new java.lang.String[] {
+ "Parent", "AccessPolicyId", "AccessPolicy", "ValidateOnly",
+ });
+ internal_static_google_iam_v3beta_GetAccessPolicyRequest_descriptor =
+ getDescriptor().getMessageType(1);
+ internal_static_google_iam_v3beta_GetAccessPolicyRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_GetAccessPolicyRequest_descriptor,
+ new java.lang.String[] {
+ "Name",
+ });
+ internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_descriptor =
+ getDescriptor().getMessageType(2);
+ internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_descriptor,
+ new java.lang.String[] {
+ "AccessPolicy", "ValidateOnly",
+ });
+ internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_descriptor =
+ getDescriptor().getMessageType(3);
+ internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_descriptor,
+ new java.lang.String[] {
+ "Name", "Etag", "ValidateOnly", "Force",
+ });
+ internal_static_google_iam_v3beta_ListAccessPoliciesRequest_descriptor =
+ getDescriptor().getMessageType(4);
+ internal_static_google_iam_v3beta_ListAccessPoliciesRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_ListAccessPoliciesRequest_descriptor,
+ new java.lang.String[] {
+ "Parent", "PageSize", "PageToken",
+ });
+ internal_static_google_iam_v3beta_ListAccessPoliciesResponse_descriptor =
+ getDescriptor().getMessageType(5);
+ internal_static_google_iam_v3beta_ListAccessPoliciesResponse_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_ListAccessPoliciesResponse_descriptor,
+ new java.lang.String[] {
+ "AccessPolicies", "NextPageToken",
+ });
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_descriptor =
+ getDescriptor().getMessageType(6);
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_descriptor,
+ new java.lang.String[] {
+ "Name", "PageSize", "PageToken",
+ });
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_descriptor =
+ getDescriptor().getMessageType(7);
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_descriptor,
+ new java.lang.String[] {
+ "PolicyBindings", "NextPageToken",
+ });
+ descriptor.resolveAllFeaturesImmutable();
+ com.google.api.AnnotationsProto.getDescriptor();
+ com.google.api.ClientProto.getDescriptor();
+ com.google.api.FieldBehaviorProto.getDescriptor();
+ com.google.api.ResourceProto.getDescriptor();
+ com.google.iam.v3beta.AccessPolicyResourcesProto.getDescriptor();
+ com.google.iam.v3beta.OperationMetadataProto.getDescriptor();
+ com.google.iam.v3beta.PolicyBindingResourcesProto.getDescriptor();
+ com.google.longrunning.OperationsProto.getDescriptor();
+ com.google.protobuf.EmptyProto.getDescriptor();
+ com.google.protobuf.ExtensionRegistry registry =
+ com.google.protobuf.ExtensionRegistry.newInstance();
+ registry.add(com.google.api.ClientProto.defaultHost);
+ registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+ registry.add(com.google.api.AnnotationsProto.http);
+ registry.add(com.google.api.ClientProto.methodSignature);
+ registry.add(com.google.api.ClientProto.oauthScopes);
+ registry.add(com.google.api.ResourceProto.resourceReference);
+ registry.add(com.google.longrunning.OperationsProto.operationInfo);
+ com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+ descriptor, registry);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicy.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicy.java
new file mode 100644
index 0000000000..0fb34238c9
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicy.java
@@ -0,0 +1,2545 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * An IAM access policy resource.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicy}
+ */
+@com.google.protobuf.Generated
+public final class AccessPolicy extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.AccessPolicy)
+ AccessPolicyOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "AccessPolicy");
+ }
+
+ // Use AccessPolicy.newBuilder() to construct.
+ private AccessPolicy(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private AccessPolicy() {
+ name_ = "";
+ uid_ = "";
+ etag_ = "";
+ displayName_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicy_descriptor;
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ @java.lang.Override
+ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+ int number) {
+ switch (number) {
+ case 5:
+ return internalGetAnnotations();
+ default:
+ throw new RuntimeException("Invalid map field number: " + number);
+ }
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicy_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicy.class,
+ com.google.iam.v3beta.AccessPolicy.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int NAME_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int UID_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object uid_ = "";
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return The uid.
+ */
+ @java.lang.Override
+ public java.lang.String getUid() {
+ java.lang.Object ref = uid_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ uid_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return The bytes for uid.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getUidBytes() {
+ java.lang.Object ref = uid_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ uid_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ETAG_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object etag_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The etag.
+ */
+ @java.lang.Override
+ public java.lang.String getEtag() {
+ java.lang.Object ref = etag_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ etag_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for etag.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getEtagBytes() {
+ java.lang.Object ref = etag_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ etag_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DISPLAY_NAME_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object displayName_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The displayName.
+ */
+ @java.lang.Override
+ public java.lang.String getDisplayName() {
+ java.lang.Object ref = displayName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ displayName_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for displayName.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getDisplayNameBytes() {
+ java.lang.Object ref = displayName_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ displayName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ANNOTATIONS_FIELD_NUMBER = 5;
+
+ private static final class AnnotationsDefaultEntryHolder {
+ static final com.google.protobuf.MapEntry defaultEntry =
+ com.google.protobuf.MapEntry.newDefaultInstance(
+ com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicy_AnnotationsEntry_descriptor,
+ com.google.protobuf.WireFormat.FieldType.STRING,
+ "",
+ com.google.protobuf.WireFormat.FieldType.STRING,
+ "");
+ }
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.MapField annotations_;
+
+ private com.google.protobuf.MapField
+ internalGetAnnotations() {
+ if (annotations_ == null) {
+ return com.google.protobuf.MapField.emptyMapField(AnnotationsDefaultEntryHolder.defaultEntry);
+ }
+ return annotations_;
+ }
+
+ public int getAnnotationsCount() {
+ return internalGetAnnotations().getMap().size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public boolean containsAnnotations(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ return internalGetAnnotations().getMap().containsKey(key);
+ }
+
+ /** Use {@link #getAnnotationsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map getAnnotations() {
+ return getAnnotationsMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public java.util.Map getAnnotationsMap() {
+ return internalGetAnnotations().getMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public /* nullable */ java.lang.String getAnnotationsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ java.lang.String defaultValue) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map = internalGetAnnotations().getMap();
+ return map.containsKey(key) ? map.get(key) : defaultValue;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public java.lang.String getAnnotationsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map = internalGetAnnotations().getMap();
+ if (!map.containsKey(key)) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ return map.get(key);
+ }
+
+ public static final int CREATE_TIME_FIELD_NUMBER = 6;
+ private com.google.protobuf.Timestamp createTime_;
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return Whether the createTime field is set.
+ */
+ @java.lang.Override
+ public boolean hasCreateTime() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return The createTime.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getCreateTime() {
+ return createTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createTime_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
+ return createTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createTime_;
+ }
+
+ public static final int UPDATE_TIME_FIELD_NUMBER = 7;
+ private com.google.protobuf.Timestamp updateTime_;
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return Whether the updateTime field is set.
+ */
+ @java.lang.Override
+ public boolean hasUpdateTime() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return The updateTime.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getUpdateTime() {
+ return updateTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : updateTime_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
+ return updateTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : updateTime_;
+ }
+
+ public static final int DETAILS_FIELD_NUMBER = 8;
+ private com.google.iam.v3beta.AccessPolicyDetails details_;
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the details field is set.
+ */
+ @java.lang.Override
+ public boolean hasDetails() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The details.
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyDetails getDetails() {
+ return details_ == null
+ ? com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance()
+ : details_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyDetailsOrBuilder getDetailsOrBuilder() {
+ return details_ == null
+ ? com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance()
+ : details_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, name_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(uid_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, uid_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(etag_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, etag_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 4, displayName_);
+ }
+ com.google.protobuf.GeneratedMessage.serializeStringMapTo(
+ output, internalGetAnnotations(), AnnotationsDefaultEntryHolder.defaultEntry, 5);
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(6, getCreateTime());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeMessage(7, getUpdateTime());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeMessage(8, getDetails());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(uid_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, uid_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(etag_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, etag_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(4, displayName_);
+ }
+ for (java.util.Map.Entry entry :
+ internalGetAnnotations().getMap().entrySet()) {
+ com.google.protobuf.MapEntry annotations__ =
+ AnnotationsDefaultEntryHolder.defaultEntry
+ .newBuilderForType()
+ .setKey(entry.getKey())
+ .setValue(entry.getValue())
+ .build();
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, annotations__);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getCreateTime());
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getUpdateTime());
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getDetails());
+ }
+ 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.iam.v3beta.AccessPolicy)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.AccessPolicy other = (com.google.iam.v3beta.AccessPolicy) obj;
+
+ if (!getName().equals(other.getName())) return false;
+ if (!getUid().equals(other.getUid())) return false;
+ if (!getEtag().equals(other.getEtag())) return false;
+ if (!getDisplayName().equals(other.getDisplayName())) return false;
+ if (!internalGetAnnotations().equals(other.internalGetAnnotations())) return false;
+ if (hasCreateTime() != other.hasCreateTime()) return false;
+ if (hasCreateTime()) {
+ if (!getCreateTime().equals(other.getCreateTime())) return false;
+ }
+ if (hasUpdateTime() != other.hasUpdateTime()) return false;
+ if (hasUpdateTime()) {
+ if (!getUpdateTime().equals(other.getUpdateTime())) return false;
+ }
+ if (hasDetails() != other.hasDetails()) return false;
+ if (hasDetails()) {
+ if (!getDetails().equals(other.getDetails())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + UID_FIELD_NUMBER;
+ hash = (53 * hash) + getUid().hashCode();
+ hash = (37 * hash) + ETAG_FIELD_NUMBER;
+ hash = (53 * hash) + getEtag().hashCode();
+ hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getDisplayName().hashCode();
+ if (!internalGetAnnotations().getMap().isEmpty()) {
+ hash = (37 * hash) + ANNOTATIONS_FIELD_NUMBER;
+ hash = (53 * hash) + internalGetAnnotations().hashCode();
+ }
+ if (hasCreateTime()) {
+ hash = (37 * hash) + CREATE_TIME_FIELD_NUMBER;
+ hash = (53 * hash) + getCreateTime().hashCode();
+ }
+ if (hasUpdateTime()) {
+ hash = (37 * hash) + UPDATE_TIME_FIELD_NUMBER;
+ hash = (53 * hash) + getUpdateTime().hashCode();
+ }
+ if (hasDetails()) {
+ hash = (37 * hash) + DETAILS_FIELD_NUMBER;
+ hash = (53 * hash) + getDetails().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy 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.iam.v3beta.AccessPolicy parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.AccessPolicy 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * An IAM access policy resource.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicy}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.AccessPolicy)
+ com.google.iam.v3beta.AccessPolicyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicy_descriptor;
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+ int number) {
+ switch (number) {
+ case 5:
+ return internalGetAnnotations();
+ default:
+ throw new RuntimeException("Invalid map field number: " + number);
+ }
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
+ int number) {
+ switch (number) {
+ case 5:
+ return internalGetMutableAnnotations();
+ default:
+ throw new RuntimeException("Invalid map field number: " + number);
+ }
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicy_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicy.class,
+ com.google.iam.v3beta.AccessPolicy.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.AccessPolicy.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ internalGetCreateTimeFieldBuilder();
+ internalGetUpdateTimeFieldBuilder();
+ internalGetDetailsFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ name_ = "";
+ uid_ = "";
+ etag_ = "";
+ displayName_ = "";
+ internalGetMutableAnnotations().clear();
+ createTime_ = null;
+ if (createTimeBuilder_ != null) {
+ createTimeBuilder_.dispose();
+ createTimeBuilder_ = null;
+ }
+ updateTime_ = null;
+ if (updateTimeBuilder_ != null) {
+ updateTimeBuilder_.dispose();
+ updateTimeBuilder_ = null;
+ }
+ details_ = null;
+ if (detailsBuilder_ != null) {
+ detailsBuilder_.dispose();
+ detailsBuilder_ = null;
+ }
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicy_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicy getDefaultInstanceForType() {
+ return com.google.iam.v3beta.AccessPolicy.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicy build() {
+ com.google.iam.v3beta.AccessPolicy result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicy buildPartial() {
+ com.google.iam.v3beta.AccessPolicy result = new com.google.iam.v3beta.AccessPolicy(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.AccessPolicy result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.name_ = name_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.uid_ = uid_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.etag_ = etag_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.displayName_ = displayName_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.annotations_ = internalGetAnnotations();
+ result.annotations_.makeImmutable();
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000020) != 0)) {
+ result.createTime_ = createTimeBuilder_ == null ? createTime_ : createTimeBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000040) != 0)) {
+ result.updateTime_ = updateTimeBuilder_ == null ? updateTime_ : updateTimeBuilder_.build();
+ to_bitField0_ |= 0x00000002;
+ }
+ if (((from_bitField0_ & 0x00000080) != 0)) {
+ result.details_ = detailsBuilder_ == null ? details_ : detailsBuilder_.build();
+ to_bitField0_ |= 0x00000004;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.AccessPolicy) {
+ return mergeFrom((com.google.iam.v3beta.AccessPolicy) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.AccessPolicy other) {
+ if (other == com.google.iam.v3beta.AccessPolicy.getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (!other.getUid().isEmpty()) {
+ uid_ = other.uid_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (!other.getEtag().isEmpty()) {
+ etag_ = other.etag_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ if (!other.getDisplayName().isEmpty()) {
+ displayName_ = other.displayName_;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ internalGetMutableAnnotations().mergeFrom(other.internalGetAnnotations());
+ bitField0_ |= 0x00000010;
+ if (other.hasCreateTime()) {
+ mergeCreateTime(other.getCreateTime());
+ }
+ if (other.hasUpdateTime()) {
+ mergeUpdateTime(other.getUpdateTime());
+ }
+ if (other.hasDetails()) {
+ mergeDetails(other.getDetails());
+ }
+ 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:
+ {
+ name_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ uid_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26:
+ {
+ etag_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 34:
+ {
+ displayName_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 34
+ case 42:
+ {
+ com.google.protobuf.MapEntry annotations__ =
+ input.readMessage(
+ AnnotationsDefaultEntryHolder.defaultEntry.getParserForType(),
+ extensionRegistry);
+ internalGetMutableAnnotations()
+ .getMutableMap()
+ .put(annotations__.getKey(), annotations__.getValue());
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 42
+ case 50:
+ {
+ input.readMessage(
+ internalGetCreateTimeFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000020;
+ break;
+ } // case 50
+ case 58:
+ {
+ input.readMessage(
+ internalGetUpdateTimeFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000040;
+ break;
+ } // case 58
+ case 66:
+ {
+ input.readMessage(internalGetDetailsFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000080;
+ break;
+ } // case 66
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+ name_ = getDefaultInstance().getName();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object uid_ = "";
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return The uid.
+ */
+ public java.lang.String getUid() {
+ java.lang.Object ref = uid_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ uid_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return The bytes for uid.
+ */
+ public com.google.protobuf.ByteString getUidBytes() {
+ java.lang.Object ref = uid_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ uid_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @param value The uid to set.
+ * @return This builder for chaining.
+ */
+ public Builder setUid(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ uid_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearUid() {
+ uid_ = getDefaultInstance().getUid();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @param value The bytes for uid to set.
+ * @return This builder for chaining.
+ */
+ public Builder setUidBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ uid_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object etag_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The etag.
+ */
+ public java.lang.String getEtag() {
+ java.lang.Object ref = etag_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ etag_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for etag.
+ */
+ public com.google.protobuf.ByteString getEtagBytes() {
+ java.lang.Object ref = etag_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ etag_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The etag to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEtag(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ etag_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearEtag() {
+ etag_ = getDefaultInstance().getEtag();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for etag to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEtagBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ etag_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object displayName_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The displayName.
+ */
+ public java.lang.String getDisplayName() {
+ java.lang.Object ref = displayName_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ displayName_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for displayName.
+ */
+ public com.google.protobuf.ByteString getDisplayNameBytes() {
+ java.lang.Object ref = displayName_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ displayName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The displayName to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDisplayName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ displayName_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDisplayName() {
+ displayName_ = getDefaultInstance().getDisplayName();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for displayName to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ displayName_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.MapField annotations_;
+
+ private com.google.protobuf.MapField
+ internalGetAnnotations() {
+ if (annotations_ == null) {
+ return com.google.protobuf.MapField.emptyMapField(
+ AnnotationsDefaultEntryHolder.defaultEntry);
+ }
+ return annotations_;
+ }
+
+ private com.google.protobuf.MapField
+ internalGetMutableAnnotations() {
+ if (annotations_ == null) {
+ annotations_ =
+ com.google.protobuf.MapField.newMapField(AnnotationsDefaultEntryHolder.defaultEntry);
+ }
+ if (!annotations_.isMutable()) {
+ annotations_ = annotations_.copy();
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return annotations_;
+ }
+
+ public int getAnnotationsCount() {
+ return internalGetAnnotations().getMap().size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public boolean containsAnnotations(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ return internalGetAnnotations().getMap().containsKey(key);
+ }
+
+ /** Use {@link #getAnnotationsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map getAnnotations() {
+ return getAnnotationsMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public java.util.Map getAnnotationsMap() {
+ return internalGetAnnotations().getMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public /* nullable */ java.lang.String getAnnotationsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ java.lang.String defaultValue) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map = internalGetAnnotations().getMap();
+ return map.containsKey(key) ? map.get(key) : defaultValue;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public java.lang.String getAnnotationsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map = internalGetAnnotations().getMap();
+ if (!map.containsKey(key)) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ return map.get(key);
+ }
+
+ public Builder clearAnnotations() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ internalGetMutableAnnotations().getMutableMap().clear();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder removeAnnotations(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ internalGetMutableAnnotations().getMutableMap().remove(key);
+ return this;
+ }
+
+ /** Use alternate mutation accessors instead. */
+ @java.lang.Deprecated
+ public java.util.Map getMutableAnnotations() {
+ bitField0_ |= 0x00000010;
+ return internalGetMutableAnnotations().getMutableMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder putAnnotations(java.lang.String key, java.lang.String value) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ if (value == null) {
+ throw new NullPointerException("map value");
+ }
+ internalGetMutableAnnotations().getMutableMap().put(key, value);
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder putAllAnnotations(java.util.Map values) {
+ internalGetMutableAnnotations().getMutableMap().putAll(values);
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+
+ private com.google.protobuf.Timestamp createTime_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ createTimeBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return Whether the createTime field is set.
+ */
+ public boolean hasCreateTime() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return The createTime.
+ */
+ public com.google.protobuf.Timestamp getCreateTime() {
+ if (createTimeBuilder_ == null) {
+ return createTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : createTime_;
+ } else {
+ return createTimeBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder setCreateTime(com.google.protobuf.Timestamp value) {
+ if (createTimeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ createTime_ = value;
+ } else {
+ createTimeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder setCreateTime(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (createTimeBuilder_ == null) {
+ createTime_ = builderForValue.build();
+ } else {
+ createTimeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
+ if (createTimeBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) != 0)
+ && createTime_ != null
+ && createTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getCreateTimeBuilder().mergeFrom(value);
+ } else {
+ createTime_ = value;
+ }
+ } else {
+ createTimeBuilder_.mergeFrom(value);
+ }
+ if (createTime_ != null) {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder clearCreateTime() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ createTime_ = null;
+ if (createTimeBuilder_ != null) {
+ createTimeBuilder_.dispose();
+ createTimeBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return internalGetCreateTimeFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
+ if (createTimeBuilder_ != null) {
+ return createTimeBuilder_.getMessageOrBuilder();
+ } else {
+ return createTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : createTime_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ internalGetCreateTimeFieldBuilder() {
+ if (createTimeBuilder_ == null) {
+ createTimeBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getCreateTime(), getParentForChildren(), isClean());
+ createTime_ = null;
+ }
+ return createTimeBuilder_;
+ }
+
+ private com.google.protobuf.Timestamp updateTime_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ updateTimeBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return Whether the updateTime field is set.
+ */
+ public boolean hasUpdateTime() {
+ return ((bitField0_ & 0x00000040) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return The updateTime.
+ */
+ public com.google.protobuf.Timestamp getUpdateTime() {
+ if (updateTimeBuilder_ == null) {
+ return updateTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : updateTime_;
+ } else {
+ return updateTimeBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
+ if (updateTimeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ updateTime_ = value;
+ } else {
+ updateTimeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder setUpdateTime(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (updateTimeBuilder_ == null) {
+ updateTime_ = builderForValue.build();
+ } else {
+ updateTimeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
+ if (updateTimeBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) != 0)
+ && updateTime_ != null
+ && updateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getUpdateTimeBuilder().mergeFrom(value);
+ } else {
+ updateTime_ = value;
+ }
+ } else {
+ updateTimeBuilder_.mergeFrom(value);
+ }
+ if (updateTime_ != null) {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public Builder clearUpdateTime() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ updateTime_ = null;
+ if (updateTimeBuilder_ != null) {
+ updateTimeBuilder_.dispose();
+ updateTimeBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return internalGetUpdateTimeFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
+ if (updateTimeBuilder_ != null) {
+ return updateTimeBuilder_.getMessageOrBuilder();
+ } else {
+ return updateTime_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : updateTime_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ internalGetUpdateTimeFieldBuilder() {
+ if (updateTimeBuilder_ == null) {
+ updateTimeBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getUpdateTime(), getParentForChildren(), isClean());
+ updateTime_ = null;
+ }
+ return updateTimeBuilder_;
+ }
+
+ private com.google.iam.v3beta.AccessPolicyDetails details_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyDetails,
+ com.google.iam.v3beta.AccessPolicyDetails.Builder,
+ com.google.iam.v3beta.AccessPolicyDetailsOrBuilder>
+ detailsBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the details field is set.
+ */
+ public boolean hasDetails() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The details.
+ */
+ public com.google.iam.v3beta.AccessPolicyDetails getDetails() {
+ if (detailsBuilder_ == null) {
+ return details_ == null
+ ? com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance()
+ : details_;
+ } else {
+ return detailsBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setDetails(com.google.iam.v3beta.AccessPolicyDetails value) {
+ if (detailsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ details_ = value;
+ } else {
+ detailsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setDetails(com.google.iam.v3beta.AccessPolicyDetails.Builder builderForValue) {
+ if (detailsBuilder_ == null) {
+ details_ = builderForValue.build();
+ } else {
+ detailsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeDetails(com.google.iam.v3beta.AccessPolicyDetails value) {
+ if (detailsBuilder_ == null) {
+ if (((bitField0_ & 0x00000080) != 0)
+ && details_ != null
+ && details_ != com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance()) {
+ getDetailsBuilder().mergeFrom(value);
+ } else {
+ details_ = value;
+ }
+ } else {
+ detailsBuilder_.mergeFrom(value);
+ }
+ if (details_ != null) {
+ bitField0_ |= 0x00000080;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearDetails() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ details_ = null;
+ if (detailsBuilder_ != null) {
+ detailsBuilder_.dispose();
+ detailsBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyDetails.Builder getDetailsBuilder() {
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return internalGetDetailsFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyDetailsOrBuilder getDetailsOrBuilder() {
+ if (detailsBuilder_ != null) {
+ return detailsBuilder_.getMessageOrBuilder();
+ } else {
+ return details_ == null
+ ? com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance()
+ : details_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyDetails,
+ com.google.iam.v3beta.AccessPolicyDetails.Builder,
+ com.google.iam.v3beta.AccessPolicyDetailsOrBuilder>
+ internalGetDetailsFieldBuilder() {
+ if (detailsBuilder_ == null) {
+ detailsBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyDetails,
+ com.google.iam.v3beta.AccessPolicyDetails.Builder,
+ com.google.iam.v3beta.AccessPolicyDetailsOrBuilder>(
+ getDetails(), getParentForChildren(), isClean());
+ details_ = null;
+ }
+ return detailsBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.AccessPolicy)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.AccessPolicy)
+ private static final com.google.iam.v3beta.AccessPolicy DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.AccessPolicy();
+ }
+
+ public static com.google.iam.v3beta.AccessPolicy getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public AccessPolicy 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.iam.v3beta.AccessPolicy getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyDetails.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyDetails.java
new file mode 100644
index 0000000000..a5186f77f0
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyDetails.java
@@ -0,0 +1,965 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Access policy details.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicyDetails}
+ */
+@com.google.protobuf.Generated
+public final class AccessPolicyDetails extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.AccessPolicyDetails)
+ AccessPolicyDetailsOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "AccessPolicyDetails");
+ }
+
+ // Use AccessPolicyDetails.newBuilder() to construct.
+ private AccessPolicyDetails(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private AccessPolicyDetails() {
+ rules_ = java.util.Collections.emptyList();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyDetails_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyDetails_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicyDetails.class,
+ com.google.iam.v3beta.AccessPolicyDetails.Builder.class);
+ }
+
+ public static final int RULES_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private java.util.List rules_;
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public java.util.List getRulesList() {
+ return rules_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public java.util.List extends com.google.iam.v3beta.AccessPolicyRuleOrBuilder>
+ getRulesOrBuilderList() {
+ return rules_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public int getRulesCount() {
+ return rules_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule getRules(int index) {
+ return rules_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRuleOrBuilder getRulesOrBuilder(int index) {
+ return rules_.get(index);
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < rules_.size(); i++) {
+ output.writeMessage(1, rules_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < rules_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, rules_.get(i));
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.iam.v3beta.AccessPolicyDetails)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.AccessPolicyDetails other =
+ (com.google.iam.v3beta.AccessPolicyDetails) obj;
+
+ if (!getRulesList().equals(other.getRulesList())) 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 (getRulesCount() > 0) {
+ hash = (37 * hash) + RULES_FIELD_NUMBER;
+ hash = (53 * hash) + getRulesList().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails 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.iam.v3beta.AccessPolicyDetails parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.AccessPolicyDetails 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Access policy details.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicyDetails}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.AccessPolicyDetails)
+ com.google.iam.v3beta.AccessPolicyDetailsOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyDetails_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyDetails_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicyDetails.class,
+ com.google.iam.v3beta.AccessPolicyDetails.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.AccessPolicyDetails.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ if (rulesBuilder_ == null) {
+ rules_ = java.util.Collections.emptyList();
+ } else {
+ rules_ = null;
+ rulesBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyDetails_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyDetails getDefaultInstanceForType() {
+ return com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyDetails build() {
+ com.google.iam.v3beta.AccessPolicyDetails result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyDetails buildPartial() {
+ com.google.iam.v3beta.AccessPolicyDetails result =
+ new com.google.iam.v3beta.AccessPolicyDetails(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(com.google.iam.v3beta.AccessPolicyDetails result) {
+ if (rulesBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ rules_ = java.util.Collections.unmodifiableList(rules_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.rules_ = rules_;
+ } else {
+ result.rules_ = rulesBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.AccessPolicyDetails result) {
+ int from_bitField0_ = bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.AccessPolicyDetails) {
+ return mergeFrom((com.google.iam.v3beta.AccessPolicyDetails) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.AccessPolicyDetails other) {
+ if (other == com.google.iam.v3beta.AccessPolicyDetails.getDefaultInstance()) return this;
+ if (rulesBuilder_ == null) {
+ if (!other.rules_.isEmpty()) {
+ if (rules_.isEmpty()) {
+ rules_ = other.rules_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureRulesIsMutable();
+ rules_.addAll(other.rules_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.rules_.isEmpty()) {
+ if (rulesBuilder_.isEmpty()) {
+ rulesBuilder_.dispose();
+ rulesBuilder_ = null;
+ rules_ = other.rules_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ rulesBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
+ ? internalGetRulesFieldBuilder()
+ : null;
+ } else {
+ rulesBuilder_.addAllMessages(other.rules_);
+ }
+ }
+ }
+ 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.iam.v3beta.AccessPolicyRule m =
+ input.readMessage(
+ com.google.iam.v3beta.AccessPolicyRule.parser(), extensionRegistry);
+ if (rulesBuilder_ == null) {
+ ensureRulesIsMutable();
+ rules_.add(m);
+ } else {
+ rulesBuilder_.addMessage(m);
+ }
+ break;
+ } // case 10
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.util.List rules_ =
+ java.util.Collections.emptyList();
+
+ private void ensureRulesIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ rules_ = new java.util.ArrayList(rules_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyRule,
+ com.google.iam.v3beta.AccessPolicyRule.Builder,
+ com.google.iam.v3beta.AccessPolicyRuleOrBuilder>
+ rulesBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public java.util.List getRulesList() {
+ if (rulesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(rules_);
+ } else {
+ return rulesBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public int getRulesCount() {
+ if (rulesBuilder_ == null) {
+ return rules_.size();
+ } else {
+ return rulesBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRule getRules(int index) {
+ if (rulesBuilder_ == null) {
+ return rules_.get(index);
+ } else {
+ return rulesBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setRules(int index, com.google.iam.v3beta.AccessPolicyRule value) {
+ if (rulesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRulesIsMutable();
+ rules_.set(index, value);
+ onChanged();
+ } else {
+ rulesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setRules(
+ int index, com.google.iam.v3beta.AccessPolicyRule.Builder builderForValue) {
+ if (rulesBuilder_ == null) {
+ ensureRulesIsMutable();
+ rules_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ rulesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder addRules(com.google.iam.v3beta.AccessPolicyRule value) {
+ if (rulesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRulesIsMutable();
+ rules_.add(value);
+ onChanged();
+ } else {
+ rulesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder addRules(int index, com.google.iam.v3beta.AccessPolicyRule value) {
+ if (rulesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRulesIsMutable();
+ rules_.add(index, value);
+ onChanged();
+ } else {
+ rulesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder addRules(com.google.iam.v3beta.AccessPolicyRule.Builder builderForValue) {
+ if (rulesBuilder_ == null) {
+ ensureRulesIsMutable();
+ rules_.add(builderForValue.build());
+ onChanged();
+ } else {
+ rulesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder addRules(
+ int index, com.google.iam.v3beta.AccessPolicyRule.Builder builderForValue) {
+ if (rulesBuilder_ == null) {
+ ensureRulesIsMutable();
+ rules_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ rulesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder addAllRules(
+ java.lang.Iterable extends com.google.iam.v3beta.AccessPolicyRule> values) {
+ if (rulesBuilder_ == null) {
+ ensureRulesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, rules_);
+ onChanged();
+ } else {
+ rulesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder clearRules() {
+ if (rulesBuilder_ == null) {
+ rules_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ rulesBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder removeRules(int index) {
+ if (rulesBuilder_ == null) {
+ ensureRulesIsMutable();
+ rules_.remove(index);
+ onChanged();
+ } else {
+ rulesBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRule.Builder getRulesBuilder(int index) {
+ return internalGetRulesFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRuleOrBuilder getRulesOrBuilder(int index) {
+ if (rulesBuilder_ == null) {
+ return rules_.get(index);
+ } else {
+ return rulesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public java.util.List extends com.google.iam.v3beta.AccessPolicyRuleOrBuilder>
+ getRulesOrBuilderList() {
+ if (rulesBuilder_ != null) {
+ return rulesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(rules_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRule.Builder addRulesBuilder() {
+ return internalGetRulesFieldBuilder()
+ .addBuilder(com.google.iam.v3beta.AccessPolicyRule.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRule.Builder addRulesBuilder(int index) {
+ return internalGetRulesFieldBuilder()
+ .addBuilder(index, com.google.iam.v3beta.AccessPolicyRule.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public java.util.List getRulesBuilderList() {
+ return internalGetRulesFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyRule,
+ com.google.iam.v3beta.AccessPolicyRule.Builder,
+ com.google.iam.v3beta.AccessPolicyRuleOrBuilder>
+ internalGetRulesFieldBuilder() {
+ if (rulesBuilder_ == null) {
+ rulesBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyRule,
+ com.google.iam.v3beta.AccessPolicyRule.Builder,
+ com.google.iam.v3beta.AccessPolicyRuleOrBuilder>(
+ rules_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
+ rules_ = null;
+ }
+ return rulesBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.AccessPolicyDetails)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.AccessPolicyDetails)
+ private static final com.google.iam.v3beta.AccessPolicyDetails DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.AccessPolicyDetails();
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyDetails getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public AccessPolicyDetails 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.iam.v3beta.AccessPolicyDetails getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyDetailsOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyDetailsOrBuilder.java
new file mode 100644
index 0000000000..8b584bb7ff
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyDetailsOrBuilder.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface AccessPolicyDetailsOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.AccessPolicyDetails)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ java.util.List getRulesList();
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ com.google.iam.v3beta.AccessPolicyRule getRules(int index);
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ int getRulesCount();
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ java.util.List extends com.google.iam.v3beta.AccessPolicyRuleOrBuilder> getRulesOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * Required. A list of access policy rules.
+ *
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ com.google.iam.v3beta.AccessPolicyRuleOrBuilder getRulesOrBuilder(int index);
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyName.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyName.java
new file mode 100644
index 0000000000..0a531712f8
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyName.java
@@ -0,0 +1,449 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.iam.v3beta;
+
+import com.google.api.pathtemplate.PathTemplate;
+import com.google.api.pathtemplate.ValidationException;
+import com.google.api.resourcenames.ResourceName;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+@Generated("by gapic-generator-java")
+public class AccessPolicyName implements ResourceName {
+ private static final PathTemplate ORGANIZATION_LOCATION_ACCESS_POLICY =
+ PathTemplate.createWithoutUrlEncoding(
+ "organizations/{organization}/locations/{location}/accessPolicies/{access_policy}");
+ private static final PathTemplate FOLDER_LOCATION_ACCESS_POLICY =
+ PathTemplate.createWithoutUrlEncoding(
+ "folders/{folder}/locations/{location}/accessPolicies/{access_policy}");
+ private static final PathTemplate PROJECT_LOCATION_ACCESS_POLICY =
+ PathTemplate.createWithoutUrlEncoding(
+ "projects/{project}/locations/{location}/accessPolicies/{access_policy}");
+ private volatile Map fieldValuesMap;
+ private PathTemplate pathTemplate;
+ private String fixedValue;
+ private final String organization;
+ private final String location;
+ private final String accessPolicy;
+ private final String folder;
+ private final String project;
+
+ @Deprecated
+ protected AccessPolicyName() {
+ organization = null;
+ location = null;
+ accessPolicy = null;
+ folder = null;
+ project = null;
+ }
+
+ private AccessPolicyName(Builder builder) {
+ organization = Preconditions.checkNotNull(builder.getOrganization());
+ location = Preconditions.checkNotNull(builder.getLocation());
+ accessPolicy = Preconditions.checkNotNull(builder.getAccessPolicy());
+ folder = null;
+ project = null;
+ pathTemplate = ORGANIZATION_LOCATION_ACCESS_POLICY;
+ }
+
+ private AccessPolicyName(FolderLocationAccessPolicyBuilder builder) {
+ folder = Preconditions.checkNotNull(builder.getFolder());
+ location = Preconditions.checkNotNull(builder.getLocation());
+ accessPolicy = Preconditions.checkNotNull(builder.getAccessPolicy());
+ organization = null;
+ project = null;
+ pathTemplate = FOLDER_LOCATION_ACCESS_POLICY;
+ }
+
+ private AccessPolicyName(ProjectLocationAccessPolicyBuilder builder) {
+ project = Preconditions.checkNotNull(builder.getProject());
+ location = Preconditions.checkNotNull(builder.getLocation());
+ accessPolicy = Preconditions.checkNotNull(builder.getAccessPolicy());
+ organization = null;
+ folder = null;
+ pathTemplate = PROJECT_LOCATION_ACCESS_POLICY;
+ }
+
+ public String getOrganization() {
+ return organization;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getAccessPolicy() {
+ return accessPolicy;
+ }
+
+ public String getFolder() {
+ return folder;
+ }
+
+ public String getProject() {
+ return project;
+ }
+
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ public static Builder newOrganizationLocationAccessPolicyBuilder() {
+ return new Builder();
+ }
+
+ public static FolderLocationAccessPolicyBuilder newFolderLocationAccessPolicyBuilder() {
+ return new FolderLocationAccessPolicyBuilder();
+ }
+
+ public static ProjectLocationAccessPolicyBuilder newProjectLocationAccessPolicyBuilder() {
+ return new ProjectLocationAccessPolicyBuilder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ public static AccessPolicyName of(String organization, String location, String accessPolicy) {
+ return newBuilder()
+ .setOrganization(organization)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build();
+ }
+
+ public static AccessPolicyName ofOrganizationLocationAccessPolicyName(
+ String organization, String location, String accessPolicy) {
+ return newBuilder()
+ .setOrganization(organization)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build();
+ }
+
+ public static AccessPolicyName ofFolderLocationAccessPolicyName(
+ String folder, String location, String accessPolicy) {
+ return newFolderLocationAccessPolicyBuilder()
+ .setFolder(folder)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build();
+ }
+
+ public static AccessPolicyName ofProjectLocationAccessPolicyName(
+ String project, String location, String accessPolicy) {
+ return newProjectLocationAccessPolicyBuilder()
+ .setProject(project)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build();
+ }
+
+ public static String format(String organization, String location, String accessPolicy) {
+ return newBuilder()
+ .setOrganization(organization)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build()
+ .toString();
+ }
+
+ public static String formatOrganizationLocationAccessPolicyName(
+ String organization, String location, String accessPolicy) {
+ return newBuilder()
+ .setOrganization(organization)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build()
+ .toString();
+ }
+
+ public static String formatFolderLocationAccessPolicyName(
+ String folder, String location, String accessPolicy) {
+ return newFolderLocationAccessPolicyBuilder()
+ .setFolder(folder)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build()
+ .toString();
+ }
+
+ public static String formatProjectLocationAccessPolicyName(
+ String project, String location, String accessPolicy) {
+ return newProjectLocationAccessPolicyBuilder()
+ .setProject(project)
+ .setLocation(location)
+ .setAccessPolicy(accessPolicy)
+ .build()
+ .toString();
+ }
+
+ public static AccessPolicyName parse(String formattedString) {
+ if (formattedString.isEmpty()) {
+ return null;
+ }
+ if (ORGANIZATION_LOCATION_ACCESS_POLICY.matches(formattedString)) {
+ Map matchMap = ORGANIZATION_LOCATION_ACCESS_POLICY.match(formattedString);
+ return ofOrganizationLocationAccessPolicyName(
+ matchMap.get("organization"), matchMap.get("location"), matchMap.get("access_policy"));
+ } else if (FOLDER_LOCATION_ACCESS_POLICY.matches(formattedString)) {
+ Map matchMap = FOLDER_LOCATION_ACCESS_POLICY.match(formattedString);
+ return ofFolderLocationAccessPolicyName(
+ matchMap.get("folder"), matchMap.get("location"), matchMap.get("access_policy"));
+ } else if (PROJECT_LOCATION_ACCESS_POLICY.matches(formattedString)) {
+ Map matchMap = PROJECT_LOCATION_ACCESS_POLICY.match(formattedString);
+ return ofProjectLocationAccessPolicyName(
+ matchMap.get("project"), matchMap.get("location"), matchMap.get("access_policy"));
+ }
+ throw new ValidationException("AccessPolicyName.parse: formattedString not in valid format");
+ }
+
+ public static List parseList(List formattedStrings) {
+ List list = new ArrayList<>(formattedStrings.size());
+ for (String formattedString : formattedStrings) {
+ list.add(parse(formattedString));
+ }
+ return list;
+ }
+
+ public static List toStringList(List values) {
+ List list = new ArrayList<>(values.size());
+ for (AccessPolicyName value : values) {
+ if (value == null) {
+ list.add("");
+ } else {
+ list.add(value.toString());
+ }
+ }
+ return list;
+ }
+
+ public static boolean isParsableFrom(String formattedString) {
+ return ORGANIZATION_LOCATION_ACCESS_POLICY.matches(formattedString)
+ || FOLDER_LOCATION_ACCESS_POLICY.matches(formattedString)
+ || PROJECT_LOCATION_ACCESS_POLICY.matches(formattedString);
+ }
+
+ @Override
+ public Map getFieldValuesMap() {
+ if (fieldValuesMap == null) {
+ synchronized (this) {
+ if (fieldValuesMap == null) {
+ ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder();
+ if (organization != null) {
+ fieldMapBuilder.put("organization", organization);
+ }
+ if (location != null) {
+ fieldMapBuilder.put("location", location);
+ }
+ if (accessPolicy != null) {
+ fieldMapBuilder.put("access_policy", accessPolicy);
+ }
+ if (folder != null) {
+ fieldMapBuilder.put("folder", folder);
+ }
+ if (project != null) {
+ fieldMapBuilder.put("project", project);
+ }
+ fieldValuesMap = fieldMapBuilder.build();
+ }
+ }
+ }
+ return fieldValuesMap;
+ }
+
+ public String getFieldValue(String fieldName) {
+ return getFieldValuesMap().get(fieldName);
+ }
+
+ @Override
+ public String toString() {
+ return fixedValue != null ? fixedValue : pathTemplate.instantiate(getFieldValuesMap());
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ if (o != null && getClass() == o.getClass()) {
+ AccessPolicyName that = ((AccessPolicyName) o);
+ return Objects.equals(this.organization, that.organization)
+ && Objects.equals(this.location, that.location)
+ && Objects.equals(this.accessPolicy, that.accessPolicy)
+ && Objects.equals(this.folder, that.folder)
+ && Objects.equals(this.project, that.project);
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int h = 1;
+ h *= 1000003;
+ h ^= Objects.hashCode(fixedValue);
+ h *= 1000003;
+ h ^= Objects.hashCode(organization);
+ h *= 1000003;
+ h ^= Objects.hashCode(location);
+ h *= 1000003;
+ h ^= Objects.hashCode(accessPolicy);
+ h *= 1000003;
+ h ^= Objects.hashCode(folder);
+ h *= 1000003;
+ h ^= Objects.hashCode(project);
+ return h;
+ }
+
+ /**
+ * Builder for organizations/{organization}/locations/{location}/accessPolicies/{access_policy}.
+ */
+ public static class Builder {
+ private String organization;
+ private String location;
+ private String accessPolicy;
+
+ protected Builder() {}
+
+ public String getOrganization() {
+ return organization;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getAccessPolicy() {
+ return accessPolicy;
+ }
+
+ public Builder setOrganization(String organization) {
+ this.organization = organization;
+ return this;
+ }
+
+ public Builder setLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ public Builder setAccessPolicy(String accessPolicy) {
+ this.accessPolicy = accessPolicy;
+ return this;
+ }
+
+ private Builder(AccessPolicyName accessPolicyName) {
+ Preconditions.checkArgument(
+ Objects.equals(accessPolicyName.pathTemplate, ORGANIZATION_LOCATION_ACCESS_POLICY),
+ "toBuilder is only supported when AccessPolicyName has the pattern of"
+ + " organizations/{organization}/locations/{location}/accessPolicies/{access_policy}");
+ this.organization = accessPolicyName.organization;
+ this.location = accessPolicyName.location;
+ this.accessPolicy = accessPolicyName.accessPolicy;
+ }
+
+ public AccessPolicyName build() {
+ return new AccessPolicyName(this);
+ }
+ }
+
+ /** Builder for folders/{folder}/locations/{location}/accessPolicies/{access_policy}. */
+ public static class FolderLocationAccessPolicyBuilder {
+ private String folder;
+ private String location;
+ private String accessPolicy;
+
+ protected FolderLocationAccessPolicyBuilder() {}
+
+ public String getFolder() {
+ return folder;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getAccessPolicy() {
+ return accessPolicy;
+ }
+
+ public FolderLocationAccessPolicyBuilder setFolder(String folder) {
+ this.folder = folder;
+ return this;
+ }
+
+ public FolderLocationAccessPolicyBuilder setLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ public FolderLocationAccessPolicyBuilder setAccessPolicy(String accessPolicy) {
+ this.accessPolicy = accessPolicy;
+ return this;
+ }
+
+ public AccessPolicyName build() {
+ return new AccessPolicyName(this);
+ }
+ }
+
+ /** Builder for projects/{project}/locations/{location}/accessPolicies/{access_policy}. */
+ public static class ProjectLocationAccessPolicyBuilder {
+ private String project;
+ private String location;
+ private String accessPolicy;
+
+ protected ProjectLocationAccessPolicyBuilder() {}
+
+ public String getProject() {
+ return project;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getAccessPolicy() {
+ return accessPolicy;
+ }
+
+ public ProjectLocationAccessPolicyBuilder setProject(String project) {
+ this.project = project;
+ return this;
+ }
+
+ public ProjectLocationAccessPolicyBuilder setLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ public ProjectLocationAccessPolicyBuilder setAccessPolicy(String accessPolicy) {
+ this.accessPolicy = accessPolicy;
+ return this;
+ }
+
+ public AccessPolicyName build() {
+ return new AccessPolicyName(this);
+ }
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyOrBuilder.java
new file mode 100644
index 0000000000..2010fbcb67
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyOrBuilder.java
@@ -0,0 +1,358 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface AccessPolicyOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.AccessPolicy)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return The name.
+ */
+ java.lang.String getName();
+
+ /**
+ *
+ *
+ *
+ * Identifier. The resource name of the access policy.
+ *
+ * The following formats are supported:
+ *
+ * * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ * * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ * * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ *
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString getNameBytes();
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return The uid.
+ */
+ java.lang.String getUid();
+
+ /**
+ *
+ *
+ *
+ * Output only. The globally unique ID of the access policy.
+ *
+ *
+ *
+ * string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_info) = { ... }
+ *
+ *
+ * @return The bytes for uid.
+ */
+ com.google.protobuf.ByteString getUidBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The etag.
+ */
+ java.lang.String getEtag();
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag for the access policy.
+ * If this is provided on update, it must match the server's etag.
+ *
+ *
+ * string etag = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for etag.
+ */
+ com.google.protobuf.ByteString getEtagBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The displayName.
+ */
+ java.lang.String getDisplayName();
+
+ /**
+ *
+ *
+ *
+ * Optional. The description of the access policy. Must be less than
+ * or equal to 63 characters.
+ *
+ *
+ * string display_name = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for displayName.
+ */
+ com.google.protobuf.ByteString getDisplayNameBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ int getAnnotationsCount();
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ boolean containsAnnotations(java.lang.String key);
+
+ /** Use {@link #getAnnotationsMap()} instead. */
+ @java.lang.Deprecated
+ java.util.Map getAnnotations();
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ java.util.Map getAnnotationsMap();
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ /* nullable */
+ java.lang.String getAnnotationsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ java.lang.String defaultValue);
+
+ /**
+ *
+ *
+ *
+ * Optional. User defined annotations. See
+ * https://google.aip.dev/148#annotations for more details such as format and
+ * size limitations
+ *
+ *
+ * map<string, string> annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ java.lang.String getAnnotationsOrThrow(java.lang.String key);
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return Whether the createTime field is set.
+ */
+ boolean hasCreateTime();
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return The createTime.
+ */
+ com.google.protobuf.Timestamp getCreateTime();
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was created.
+ *
+ *
+ * .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return Whether the updateTime field is set.
+ */
+ boolean hasUpdateTime();
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ *
+ * @return The updateTime.
+ */
+ com.google.protobuf.Timestamp getUpdateTime();
+
+ /**
+ *
+ *
+ *
+ * Output only. The time when the access policy was most recently
+ * updated.
+ *
+ *
+ * .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ *
+ */
+ com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the details field is set.
+ */
+ boolean hasDetails();
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The details.
+ */
+ com.google.iam.v3beta.AccessPolicyDetails getDetails();
+
+ /**
+ *
+ *
+ *
+ * Optional. The details for the access policy.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyDetails details = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.iam.v3beta.AccessPolicyDetailsOrBuilder getDetailsOrBuilder();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyResourcesProto.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyResourcesProto.java
new file mode 100644
index 0000000000..7b7f6a85dd
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyResourcesProto.java
@@ -0,0 +1,215 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public final class AccessPolicyResourcesProto extends com.google.protobuf.GeneratedFile {
+ private AccessPolicyResourcesProto() {}
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "AccessPolicyResourcesProto");
+ }
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_AccessPolicy_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_AccessPolicy_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_AccessPolicy_AnnotationsEntry_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_AccessPolicy_AnnotationsEntry_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_AccessPolicyDetails_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_AccessPolicyDetails_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_AccessPolicyRule_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_AccessPolicyRule_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_AccessPolicyRule_Operation_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_AccessPolicyRule_Operation_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_iam_v3beta_AccessPolicyRule_ConditionsEntry_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_iam_v3beta_AccessPolicyRule_ConditionsEntry_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ return descriptor;
+ }
+
+ private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
+
+ static {
+ java.lang.String[] descriptorData = {
+ "\n"
+ + "/google/iam/v3beta/access_policy_resour"
+ + "ces.proto\022\021google.iam.v3beta\032\037google/api"
+ + "/field_behavior.proto\032\033google/api/field_"
+ + "info.proto\032\031google/api/resource.proto\032\037g"
+ + "oogle/protobuf/timestamp.proto\032\026google/type/expr.proto\"\271\005\n"
+ + "\014AccessPolicy\022\021\n"
+ + "\004name\030\001 \001(\tB\003\340A\010\022\030\n"
+ + "\003uid\030\002 \001(\tB\013\340A\003\342\214\317\327\010\002\010\001\022\021\n"
+ + "\004etag\030\003 \001(\tB\003\340A\001\022\031\n"
+ + "\014display_name\030\004 \001(\tB\003\340A\001\022J\n"
+ + "\013annotations\030\005 \003(\01320.google.iam.v3b"
+ + "eta.AccessPolicy.AnnotationsEntryB\003\340A\001\0224\n"
+ + "\013create_time\030\006 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0224\n"
+ + "\013update_time\030\007 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022<\n"
+ + "\007details\030\010 "
+ + "\001(\0132&.google.iam.v3beta.AccessPolicyDetailsB\003\340A\001\0322\n"
+ + "\020AnnotationsEntry\022\013\n"
+ + "\003key\030\001 \001(\t\022\r\n"
+ + "\005value\030\002 \001(\t:\0028\001:\243\002\352A\237\002\n"
+ + "\037iam.googleapis.com/AccessPolicy\022Porganizations/{org"
+ + "anization}/locations/{location}/accessPolicies/{access_policy}\022Dfolders/{folder}"
+ + "/locations/{location}/accessPolicies/{access_policy}\022Fprojects/{project}/locatio"
+ + "ns/{location}/accessPolicies/{access_policy}*\016accessPolicies2\014accessPolicy\"N\n"
+ + "\023AccessPolicyDetails\0227\n"
+ + "\005rules\030\001"
+ + " \003(\0132#.google.iam.v3beta.AccessPolicyRuleB\003\340A\002\"\251\004\n"
+ + "\020AccessPolicyRule\022\035\n"
+ + "\013description\030\001 \001(\tB\003\340A\001H\000\210\001\001\022D\n"
+ + "\006effect\030\002"
+ + " \001(\0162*.google.iam.v3beta.AccessPolicyRule.EffectB\003\340A\002H\001\210\001\001\022\027\n\n"
+ + "principals\030\003 \003(\tB\003\340A\002\022 \n"
+ + "\023excluded_principals\030\004 \003(\tB\003\340A\001\022E\n"
+ + "\toperation\030\n"
+ + " \001(\0132-.google.iam.v3beta.AccessPolicyRule.OperationB\003\340A\002\022L\n\n"
+ + "conditions\030\t \003(\01323.google.iam."
+ + "v3beta.AccessPolicyRule.ConditionsEntryB\003\340A\001\032H\n"
+ + "\tOperation\022\030\n"
+ + "\013permissions\030\001 \003(\tB\003\340A\001\022!\n"
+ + "\024excluded_permissions\030\002 \003(\tB\003\340A\001\032D\n"
+ + "\017ConditionsEntry\022\013\n"
+ + "\003key\030\001 \001(\t\022 \n"
+ + "\005value\030\002 \001(\0132\021.google.type.Expr:\0028\001\"5\n"
+ + "\006Effect\022\026\n"
+ + "\022EFFECT_UNSPECIFIED\020\000\022\010\n"
+ + "\004DENY\020\001\022\t\n"
+ + "\005ALLOW\020\002B\016\n"
+ + "\014_descriptionB\t\n"
+ + "\007_effectB\230\001\n"
+ + "\025com.google.iam.v3betaB\032AccessPolicyResourcesP"
+ + "rotoP\001Z-cloud.google.com/go/iam/apiv3bet"
+ + "a/iampb;iampb\252\002\027Google.Cloud.Iam.V3Beta\312"
+ + "\002\027Google\\Cloud\\Iam\\V3betab\006proto3"
+ };
+ descriptor =
+ com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
+ descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.google.api.FieldBehaviorProto.getDescriptor(),
+ com.google.api.FieldInfoProto.getDescriptor(),
+ com.google.api.ResourceProto.getDescriptor(),
+ com.google.protobuf.TimestampProto.getDescriptor(),
+ com.google.type.ExprProto.getDescriptor(),
+ });
+ internal_static_google_iam_v3beta_AccessPolicy_descriptor = getDescriptor().getMessageType(0);
+ internal_static_google_iam_v3beta_AccessPolicy_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_AccessPolicy_descriptor,
+ new java.lang.String[] {
+ "Name",
+ "Uid",
+ "Etag",
+ "DisplayName",
+ "Annotations",
+ "CreateTime",
+ "UpdateTime",
+ "Details",
+ });
+ internal_static_google_iam_v3beta_AccessPolicy_AnnotationsEntry_descriptor =
+ internal_static_google_iam_v3beta_AccessPolicy_descriptor.getNestedType(0);
+ internal_static_google_iam_v3beta_AccessPolicy_AnnotationsEntry_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_AccessPolicy_AnnotationsEntry_descriptor,
+ new java.lang.String[] {
+ "Key", "Value",
+ });
+ internal_static_google_iam_v3beta_AccessPolicyDetails_descriptor =
+ getDescriptor().getMessageType(1);
+ internal_static_google_iam_v3beta_AccessPolicyDetails_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_AccessPolicyDetails_descriptor,
+ new java.lang.String[] {
+ "Rules",
+ });
+ internal_static_google_iam_v3beta_AccessPolicyRule_descriptor =
+ getDescriptor().getMessageType(2);
+ internal_static_google_iam_v3beta_AccessPolicyRule_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_AccessPolicyRule_descriptor,
+ new java.lang.String[] {
+ "Description",
+ "Effect",
+ "Principals",
+ "ExcludedPrincipals",
+ "Operation",
+ "Conditions",
+ });
+ internal_static_google_iam_v3beta_AccessPolicyRule_Operation_descriptor =
+ internal_static_google_iam_v3beta_AccessPolicyRule_descriptor.getNestedType(0);
+ internal_static_google_iam_v3beta_AccessPolicyRule_Operation_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_AccessPolicyRule_Operation_descriptor,
+ new java.lang.String[] {
+ "Permissions", "ExcludedPermissions",
+ });
+ internal_static_google_iam_v3beta_AccessPolicyRule_ConditionsEntry_descriptor =
+ internal_static_google_iam_v3beta_AccessPolicyRule_descriptor.getNestedType(1);
+ internal_static_google_iam_v3beta_AccessPolicyRule_ConditionsEntry_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_iam_v3beta_AccessPolicyRule_ConditionsEntry_descriptor,
+ new java.lang.String[] {
+ "Key", "Value",
+ });
+ descriptor.resolveAllFeaturesImmutable();
+ com.google.api.FieldBehaviorProto.getDescriptor();
+ com.google.api.FieldInfoProto.getDescriptor();
+ com.google.api.ResourceProto.getDescriptor();
+ com.google.protobuf.TimestampProto.getDescriptor();
+ com.google.type.ExprProto.getDescriptor();
+ com.google.protobuf.ExtensionRegistry registry =
+ com.google.protobuf.ExtensionRegistry.newInstance();
+ registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+ registry.add(com.google.api.FieldInfoProto.fieldInfo);
+ registry.add(com.google.api.ResourceProto.resource);
+ com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+ descriptor, registry);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyRule.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyRule.java
new file mode 100644
index 0000000000..2649a43982
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyRule.java
@@ -0,0 +1,4521 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Access Policy Rule that determines the behavior of the policy.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicyRule}
+ */
+@com.google.protobuf.Generated
+public final class AccessPolicyRule extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.AccessPolicyRule)
+ AccessPolicyRuleOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "AccessPolicyRule");
+ }
+
+ // Use AccessPolicyRule.newBuilder() to construct.
+ private AccessPolicyRule(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private AccessPolicyRule() {
+ description_ = "";
+ effect_ = 0;
+ principals_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ excludedPrincipals_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_descriptor;
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ @java.lang.Override
+ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+ int number) {
+ switch (number) {
+ case 9:
+ return internalGetConditions();
+ default:
+ throw new RuntimeException("Invalid map field number: " + number);
+ }
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicyRule.class,
+ com.google.iam.v3beta.AccessPolicyRule.Builder.class);
+ }
+
+ /**
+ *
+ *
+ *
+ * An effect to describe the access relationship.
+ *
+ *
+ * Protobuf enum {@code google.iam.v3beta.AccessPolicyRule.Effect}
+ */
+ public enum Effect implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ *
+ *
+ *
+ * The effect is unspecified.
+ *
+ *
+ * EFFECT_UNSPECIFIED = 0;
+ */
+ EFFECT_UNSPECIFIED(0),
+ /**
+ *
+ *
+ *
+ * The policy will deny access if it evaluates to true.
+ *
+ *
+ * DENY = 1;
+ */
+ DENY(1),
+ /**
+ *
+ *
+ *
+ * The policy will grant access if it evaluates to true.
+ *
+ *
+ * ALLOW = 2;
+ */
+ ALLOW(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "Effect");
+ }
+
+ /**
+ *
+ *
+ *
+ * The effect is unspecified.
+ *
+ *
+ * EFFECT_UNSPECIFIED = 0;
+ */
+ public static final int EFFECT_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ *
+ * The policy will deny access if it evaluates to true.
+ *
+ *
+ * DENY = 1;
+ */
+ public static final int DENY_VALUE = 1;
+
+ /**
+ *
+ *
+ *
+ * The policy will grant access if it evaluates to true.
+ *
+ *
+ * ALLOW = 2;
+ */
+ public static final int ALLOW_VALUE = 2;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static Effect valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static Effect forNumber(int value) {
+ switch (value) {
+ case 0:
+ return EFFECT_UNSPECIFIED;
+ case 1:
+ return DENY;
+ case 2:
+ return ALLOW;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() {
+ return internalValueMap;
+ }
+
+ private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public Effect findValueByNumber(int number) {
+ return Effect.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+
+ public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
+ return getDescriptor();
+ }
+
+ public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyRule.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final Effect[] VALUES = values();
+
+ public static Effect valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private Effect(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:google.iam.v3beta.AccessPolicyRule.Effect)
+ }
+
+ public interface OperationOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.AccessPolicyRule.Operation)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return A list containing the permissions.
+ */
+ java.util.List getPermissionsList();
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The count of permissions.
+ */
+ int getPermissionsCount();
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the element to return.
+ * @return The permissions at the given index.
+ */
+ java.lang.String getPermissions(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the permissions at the given index.
+ */
+ com.google.protobuf.ByteString getPermissionsBytes(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return A list containing the excludedPermissions.
+ */
+ java.util.List getExcludedPermissionsList();
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The count of excludedPermissions.
+ */
+ int getExcludedPermissionsCount();
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the element to return.
+ * @return The excludedPermissions at the given index.
+ */
+ java.lang.String getExcludedPermissions(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the excludedPermissions at the given index.
+ */
+ com.google.protobuf.ByteString getExcludedPermissionsBytes(int index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Attributes that are used to determine whether this rule applies to a
+ * request.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicyRule.Operation}
+ */
+ public static final class Operation extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.AccessPolicyRule.Operation)
+ OperationOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "Operation");
+ }
+
+ // Use Operation.newBuilder() to construct.
+ private Operation(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private Operation() {
+ permissions_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ excludedPermissions_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_Operation_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_Operation_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicyRule.Operation.class,
+ com.google.iam.v3beta.AccessPolicyRule.Operation.Builder.class);
+ }
+
+ public static final int PERMISSIONS_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList permissions_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return A list containing the permissions.
+ */
+ public com.google.protobuf.ProtocolStringList getPermissionsList() {
+ return permissions_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The count of permissions.
+ */
+ public int getPermissionsCount() {
+ return permissions_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the element to return.
+ * @return The permissions at the given index.
+ */
+ public java.lang.String getPermissions(int index) {
+ return permissions_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the permissions at the given index.
+ */
+ public com.google.protobuf.ByteString getPermissionsBytes(int index) {
+ return permissions_.getByteString(index);
+ }
+
+ public static final int EXCLUDED_PERMISSIONS_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList excludedPermissions_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return A list containing the excludedPermissions.
+ */
+ public com.google.protobuf.ProtocolStringList getExcludedPermissionsList() {
+ return excludedPermissions_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The count of excludedPermissions.
+ */
+ public int getExcludedPermissionsCount() {
+ return excludedPermissions_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the element to return.
+ * @return The excludedPermissions at the given index.
+ */
+ public java.lang.String getExcludedPermissions(int index) {
+ return excludedPermissions_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the excludedPermissions at the given index.
+ */
+ public com.google.protobuf.ByteString getExcludedPermissionsBytes(int index) {
+ return excludedPermissions_.getByteString(index);
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < permissions_.size(); i++) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, permissions_.getRaw(i));
+ }
+ for (int i = 0; i < excludedPermissions_.size(); i++) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, excludedPermissions_.getRaw(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ for (int i = 0; i < permissions_.size(); i++) {
+ dataSize += computeStringSizeNoTag(permissions_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getPermissionsList().size();
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < excludedPermissions_.size(); i++) {
+ dataSize += computeStringSizeNoTag(excludedPermissions_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getExcludedPermissionsList().size();
+ }
+ 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.iam.v3beta.AccessPolicyRule.Operation)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.AccessPolicyRule.Operation other =
+ (com.google.iam.v3beta.AccessPolicyRule.Operation) obj;
+
+ if (!getPermissionsList().equals(other.getPermissionsList())) return false;
+ if (!getExcludedPermissionsList().equals(other.getExcludedPermissionsList())) 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 (getPermissionsCount() > 0) {
+ hash = (37 * hash) + PERMISSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + getPermissionsList().hashCode();
+ }
+ if (getExcludedPermissionsCount() > 0) {
+ hash = (37 * hash) + EXCLUDED_PERMISSIONS_FIELD_NUMBER;
+ hash = (53 * hash) + getExcludedPermissionsList().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation 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.iam.v3beta.AccessPolicyRule.Operation parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.AccessPolicyRule.Operation 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Attributes that are used to determine whether this rule applies to a
+ * request.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicyRule.Operation}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.AccessPolicyRule.Operation)
+ com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_Operation_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_Operation_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicyRule.Operation.class,
+ com.google.iam.v3beta.AccessPolicyRule.Operation.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.AccessPolicyRule.Operation.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ permissions_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ excludedPermissions_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_Operation_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.Operation getDefaultInstanceForType() {
+ return com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.Operation build() {
+ com.google.iam.v3beta.AccessPolicyRule.Operation result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.Operation buildPartial() {
+ com.google.iam.v3beta.AccessPolicyRule.Operation result =
+ new com.google.iam.v3beta.AccessPolicyRule.Operation(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.AccessPolicyRule.Operation result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ permissions_.makeImmutable();
+ result.permissions_ = permissions_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ excludedPermissions_.makeImmutable();
+ result.excludedPermissions_ = excludedPermissions_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.AccessPolicyRule.Operation) {
+ return mergeFrom((com.google.iam.v3beta.AccessPolicyRule.Operation) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.AccessPolicyRule.Operation other) {
+ if (other == com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance())
+ return this;
+ if (!other.permissions_.isEmpty()) {
+ if (permissions_.isEmpty()) {
+ permissions_ = other.permissions_;
+ bitField0_ |= 0x00000001;
+ } else {
+ ensurePermissionsIsMutable();
+ permissions_.addAll(other.permissions_);
+ }
+ onChanged();
+ }
+ if (!other.excludedPermissions_.isEmpty()) {
+ if (excludedPermissions_.isEmpty()) {
+ excludedPermissions_ = other.excludedPermissions_;
+ bitField0_ |= 0x00000002;
+ } else {
+ ensureExcludedPermissionsIsMutable();
+ excludedPermissions_.addAll(other.excludedPermissions_);
+ }
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ java.lang.String s = input.readStringRequireUtf8();
+ ensurePermissionsIsMutable();
+ permissions_.add(s);
+ break;
+ } // case 10
+ case 18:
+ {
+ java.lang.String s = input.readStringRequireUtf8();
+ ensureExcludedPermissionsIsMutable();
+ excludedPermissions_.add(s);
+ break;
+ } // case 18
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.protobuf.LazyStringArrayList permissions_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensurePermissionsIsMutable() {
+ if (!permissions_.isModifiable()) {
+ permissions_ = new com.google.protobuf.LazyStringArrayList(permissions_);
+ }
+ bitField0_ |= 0x00000001;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return A list containing the permissions.
+ */
+ public com.google.protobuf.ProtocolStringList getPermissionsList() {
+ permissions_.makeImmutable();
+ return permissions_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The count of permissions.
+ */
+ public int getPermissionsCount() {
+ return permissions_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the element to return.
+ * @return The permissions at the given index.
+ */
+ public java.lang.String getPermissions(int index) {
+ return permissions_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the permissions at the given index.
+ */
+ public com.google.protobuf.ByteString getPermissionsBytes(int index) {
+ return permissions_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index to set the value at.
+ * @param value The permissions to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPermissions(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePermissionsIsMutable();
+ permissions_.set(index, value);
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The permissions to add.
+ * @return This builder for chaining.
+ */
+ public Builder addPermissions(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePermissionsIsMutable();
+ permissions_.add(value);
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param values The permissions to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllPermissions(java.lang.Iterable values) {
+ ensurePermissionsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, permissions_);
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPermissions() {
+ permissions_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The permissions that are explicitly affected by this rule. Each
+ * permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ * `{service_fqdn}` is the fully qualified domain name for the service.
+ * Currently supported permissions are as follows:
+ *
+ * * `eventarc.googleapis.com/messageBuses.publish`.
+ *
+ *
+ * repeated string permissions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes of the permissions to add.
+ * @return This builder for chaining.
+ */
+ public Builder addPermissionsBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensurePermissionsIsMutable();
+ permissions_.add(value);
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList excludedPermissions_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureExcludedPermissionsIsMutable() {
+ if (!excludedPermissions_.isModifiable()) {
+ excludedPermissions_ = new com.google.protobuf.LazyStringArrayList(excludedPermissions_);
+ }
+ bitField0_ |= 0x00000002;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return A list containing the excludedPermissions.
+ */
+ public com.google.protobuf.ProtocolStringList getExcludedPermissionsList() {
+ excludedPermissions_.makeImmutable();
+ return excludedPermissions_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The count of excludedPermissions.
+ */
+ public int getExcludedPermissionsCount() {
+ return excludedPermissions_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the element to return.
+ * @return The excludedPermissions at the given index.
+ */
+ public java.lang.String getExcludedPermissions(int index) {
+ return excludedPermissions_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the excludedPermissions at the given index.
+ */
+ public com.google.protobuf.ByteString getExcludedPermissionsBytes(int index) {
+ return excludedPermissions_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index to set the value at.
+ * @param value The excludedPermissions to set.
+ * @return This builder for chaining.
+ */
+ public Builder setExcludedPermissions(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureExcludedPermissionsIsMutable();
+ excludedPermissions_.set(index, value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The excludedPermissions to add.
+ * @return This builder for chaining.
+ */
+ public Builder addExcludedPermissions(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureExcludedPermissionsIsMutable();
+ excludedPermissions_.add(value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param values The excludedPermissions to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllExcludedPermissions(java.lang.Iterable values) {
+ ensureExcludedPermissionsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, excludedPermissions_);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearExcludedPermissions() {
+ excludedPermissions_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies the permissions that this rule excludes from the set
+ * of affected permissions given by `permissions`. If a permission appears
+ * in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ * subject to the policy effect.
+ *
+ * The excluded permissions can be specified using the same syntax as
+ * `permissions`.
+ *
+ *
+ * repeated string excluded_permissions = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The bytes of the excludedPermissions to add.
+ * @return This builder for chaining.
+ */
+ public Builder addExcludedPermissionsBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureExcludedPermissionsIsMutable();
+ excludedPermissions_.add(value);
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.AccessPolicyRule.Operation)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.AccessPolicyRule.Operation)
+ private static final com.google.iam.v3beta.AccessPolicyRule.Operation DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.AccessPolicyRule.Operation();
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule.Operation getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public Operation 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.iam.v3beta.AccessPolicyRule.Operation getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ private int bitField0_;
+ public static final int DESCRIPTION_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object description_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the description field is set.
+ */
+ @java.lang.Override
+ public boolean hasDescription() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The description.
+ */
+ @java.lang.Override
+ public java.lang.String getDescription() {
+ java.lang.Object ref = description_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ description_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for description.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getDescriptionBytes() {
+ java.lang.Object ref = description_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ description_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int EFFECT_FIELD_NUMBER = 2;
+ private int effect_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the effect field is set.
+ */
+ @java.lang.Override
+ public boolean hasEffect() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The enum numeric value on the wire for effect.
+ */
+ @java.lang.Override
+ public int getEffectValue() {
+ return effect_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The effect.
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.Effect getEffect() {
+ com.google.iam.v3beta.AccessPolicyRule.Effect result =
+ com.google.iam.v3beta.AccessPolicyRule.Effect.forNumber(effect_);
+ return result == null ? com.google.iam.v3beta.AccessPolicyRule.Effect.UNRECOGNIZED : result;
+ }
+
+ public static final int PRINCIPALS_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList principals_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return A list containing the principals.
+ */
+ public com.google.protobuf.ProtocolStringList getPrincipalsList() {
+ return principals_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The count of principals.
+ */
+ public int getPrincipalsCount() {
+ return principals_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index of the element to return.
+ * @return The principals at the given index.
+ */
+ public java.lang.String getPrincipals(int index) {
+ return principals_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the principals at the given index.
+ */
+ public com.google.protobuf.ByteString getPrincipalsBytes(int index) {
+ return principals_.getByteString(index);
+ }
+
+ public static final int EXCLUDED_PRINCIPALS_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList excludedPrincipals_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return A list containing the excludedPrincipals.
+ */
+ public com.google.protobuf.ProtocolStringList getExcludedPrincipalsList() {
+ return excludedPrincipals_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The count of excludedPrincipals.
+ */
+ public int getExcludedPrincipalsCount() {
+ return excludedPrincipals_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the element to return.
+ * @return The excludedPrincipals at the given index.
+ */
+ public java.lang.String getExcludedPrincipals(int index) {
+ return excludedPrincipals_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the excludedPrincipals at the given index.
+ */
+ public com.google.protobuf.ByteString getExcludedPrincipalsBytes(int index) {
+ return excludedPrincipals_.getByteString(index);
+ }
+
+ public static final int OPERATION_FIELD_NUMBER = 10;
+ private com.google.iam.v3beta.AccessPolicyRule.Operation operation_;
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the operation field is set.
+ */
+ @java.lang.Override
+ public boolean hasOperation() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The operation.
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.Operation getOperation() {
+ return operation_ == null
+ ? com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance()
+ : operation_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder getOperationOrBuilder() {
+ return operation_ == null
+ ? com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance()
+ : operation_;
+ }
+
+ public static final int CONDITIONS_FIELD_NUMBER = 9;
+
+ private static final class ConditionsDefaultEntryHolder {
+ static final com.google.protobuf.MapEntry defaultEntry =
+ com.google.protobuf.MapEntry.newDefaultInstance(
+ com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_ConditionsEntry_descriptor,
+ com.google.protobuf.WireFormat.FieldType.STRING,
+ "",
+ com.google.protobuf.WireFormat.FieldType.MESSAGE,
+ com.google.type.Expr.getDefaultInstance());
+ }
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.MapField conditions_;
+
+ private com.google.protobuf.MapField
+ internalGetConditions() {
+ if (conditions_ == null) {
+ return com.google.protobuf.MapField.emptyMapField(ConditionsDefaultEntryHolder.defaultEntry);
+ }
+ return conditions_;
+ }
+
+ public int getConditionsCount() {
+ return internalGetConditions().getMap().size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public boolean containsConditions(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ return internalGetConditions().getMap().containsKey(key);
+ }
+
+ /** Use {@link #getConditionsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map getConditions() {
+ return getConditionsMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public java.util.Map getConditionsMap() {
+ return internalGetConditions().getMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public /* nullable */ com.google.type.Expr getConditionsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ com.google.type.Expr defaultValue) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map = internalGetConditions().getMap();
+ return map.containsKey(key) ? map.get(key) : defaultValue;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.type.Expr getConditionsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map = internalGetConditions().getMap();
+ if (!map.containsKey(key)) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ return map.get(key);
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, description_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ output.writeEnum(2, effect_);
+ }
+ for (int i = 0; i < principals_.size(); i++) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, principals_.getRaw(i));
+ }
+ for (int i = 0; i < excludedPrincipals_.size(); i++) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 4, excludedPrincipals_.getRaw(i));
+ }
+ com.google.protobuf.GeneratedMessage.serializeStringMapTo(
+ output, internalGetConditions(), ConditionsDefaultEntryHolder.defaultEntry, 9);
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeMessage(10, getOperation());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, description_);
+ }
+ if (((bitField0_ & 0x00000002) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, effect_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < principals_.size(); i++) {
+ dataSize += computeStringSizeNoTag(principals_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getPrincipalsList().size();
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < excludedPrincipals_.size(); i++) {
+ dataSize += computeStringSizeNoTag(excludedPrincipals_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getExcludedPrincipalsList().size();
+ }
+ for (java.util.Map.Entry entry :
+ internalGetConditions().getMap().entrySet()) {
+ com.google.protobuf.MapEntry conditions__ =
+ ConditionsDefaultEntryHolder.defaultEntry
+ .newBuilderForType()
+ .setKey(entry.getKey())
+ .setValue(entry.getValue())
+ .build();
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, conditions__);
+ }
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getOperation());
+ }
+ 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.iam.v3beta.AccessPolicyRule)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.AccessPolicyRule other = (com.google.iam.v3beta.AccessPolicyRule) obj;
+
+ if (hasDescription() != other.hasDescription()) return false;
+ if (hasDescription()) {
+ if (!getDescription().equals(other.getDescription())) return false;
+ }
+ if (hasEffect() != other.hasEffect()) return false;
+ if (hasEffect()) {
+ if (effect_ != other.effect_) return false;
+ }
+ if (!getPrincipalsList().equals(other.getPrincipalsList())) return false;
+ if (!getExcludedPrincipalsList().equals(other.getExcludedPrincipalsList())) return false;
+ if (hasOperation() != other.hasOperation()) return false;
+ if (hasOperation()) {
+ if (!getOperation().equals(other.getOperation())) return false;
+ }
+ if (!internalGetConditions().equals(other.internalGetConditions())) 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 (hasDescription()) {
+ hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
+ hash = (53 * hash) + getDescription().hashCode();
+ }
+ if (hasEffect()) {
+ hash = (37 * hash) + EFFECT_FIELD_NUMBER;
+ hash = (53 * hash) + effect_;
+ }
+ if (getPrincipalsCount() > 0) {
+ hash = (37 * hash) + PRINCIPALS_FIELD_NUMBER;
+ hash = (53 * hash) + getPrincipalsList().hashCode();
+ }
+ if (getExcludedPrincipalsCount() > 0) {
+ hash = (37 * hash) + EXCLUDED_PRINCIPALS_FIELD_NUMBER;
+ hash = (53 * hash) + getExcludedPrincipalsList().hashCode();
+ }
+ if (hasOperation()) {
+ hash = (37 * hash) + OPERATION_FIELD_NUMBER;
+ hash = (53 * hash) + getOperation().hashCode();
+ }
+ if (!internalGetConditions().getMap().isEmpty()) {
+ hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
+ hash = (53 * hash) + internalGetConditions().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule 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.iam.v3beta.AccessPolicyRule parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.AccessPolicyRule 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Access Policy Rule that determines the behavior of the policy.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.AccessPolicyRule}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.AccessPolicyRule)
+ com.google.iam.v3beta.AccessPolicyRuleOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_descriptor;
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+ int number) {
+ switch (number) {
+ case 9:
+ return internalGetConditions();
+ default:
+ throw new RuntimeException("Invalid map field number: " + number);
+ }
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
+ int number) {
+ switch (number) {
+ case 9:
+ return internalGetMutableConditions();
+ default:
+ throw new RuntimeException("Invalid map field number: " + number);
+ }
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.AccessPolicyRule.class,
+ com.google.iam.v3beta.AccessPolicyRule.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.AccessPolicyRule.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ internalGetOperationFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ description_ = "";
+ effect_ = 0;
+ principals_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ excludedPrincipals_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ operation_ = null;
+ if (operationBuilder_ != null) {
+ operationBuilder_.dispose();
+ operationBuilder_ = null;
+ }
+ internalGetMutableConditions().clear();
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPolicyResourcesProto
+ .internal_static_google_iam_v3beta_AccessPolicyRule_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule getDefaultInstanceForType() {
+ return com.google.iam.v3beta.AccessPolicyRule.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule build() {
+ com.google.iam.v3beta.AccessPolicyRule result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule buildPartial() {
+ com.google.iam.v3beta.AccessPolicyRule result =
+ new com.google.iam.v3beta.AccessPolicyRule(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.AccessPolicyRule result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.description_ = description_;
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.effect_ = effect_;
+ to_bitField0_ |= 0x00000002;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ principals_.makeImmutable();
+ result.principals_ = principals_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ excludedPrincipals_.makeImmutable();
+ result.excludedPrincipals_ = excludedPrincipals_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.operation_ = operationBuilder_ == null ? operation_ : operationBuilder_.build();
+ to_bitField0_ |= 0x00000004;
+ }
+ if (((from_bitField0_ & 0x00000020) != 0)) {
+ result.conditions_ =
+ internalGetConditions().build(ConditionsDefaultEntryHolder.defaultEntry);
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.AccessPolicyRule) {
+ return mergeFrom((com.google.iam.v3beta.AccessPolicyRule) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.AccessPolicyRule other) {
+ if (other == com.google.iam.v3beta.AccessPolicyRule.getDefaultInstance()) return this;
+ if (other.hasDescription()) {
+ description_ = other.description_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (other.hasEffect()) {
+ setEffectValue(other.getEffectValue());
+ }
+ if (!other.principals_.isEmpty()) {
+ if (principals_.isEmpty()) {
+ principals_ = other.principals_;
+ bitField0_ |= 0x00000004;
+ } else {
+ ensurePrincipalsIsMutable();
+ principals_.addAll(other.principals_);
+ }
+ onChanged();
+ }
+ if (!other.excludedPrincipals_.isEmpty()) {
+ if (excludedPrincipals_.isEmpty()) {
+ excludedPrincipals_ = other.excludedPrincipals_;
+ bitField0_ |= 0x00000008;
+ } else {
+ ensureExcludedPrincipalsIsMutable();
+ excludedPrincipals_.addAll(other.excludedPrincipals_);
+ }
+ onChanged();
+ }
+ if (other.hasOperation()) {
+ mergeOperation(other.getOperation());
+ }
+ internalGetMutableConditions().mergeFrom(other.internalGetConditions());
+ bitField0_ |= 0x00000020;
+ 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:
+ {
+ description_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 16:
+ {
+ effect_ = input.readEnum();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ case 26:
+ {
+ java.lang.String s = input.readStringRequireUtf8();
+ ensurePrincipalsIsMutable();
+ principals_.add(s);
+ break;
+ } // case 26
+ case 34:
+ {
+ java.lang.String s = input.readStringRequireUtf8();
+ ensureExcludedPrincipalsIsMutable();
+ excludedPrincipals_.add(s);
+ break;
+ } // case 34
+ case 74:
+ {
+ com.google.protobuf.MapEntry conditions__ =
+ input.readMessage(
+ ConditionsDefaultEntryHolder.defaultEntry.getParserForType(),
+ extensionRegistry);
+ internalGetMutableConditions()
+ .ensureBuilderMap()
+ .put(conditions__.getKey(), conditions__.getValue());
+ bitField0_ |= 0x00000020;
+ break;
+ } // case 74
+ case 82:
+ {
+ input.readMessage(
+ internalGetOperationFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 82
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object description_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the description field is set.
+ */
+ public boolean hasDescription() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The description.
+ */
+ public java.lang.String getDescription() {
+ java.lang.Object ref = description_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ description_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for description.
+ */
+ public com.google.protobuf.ByteString getDescriptionBytes() {
+ java.lang.Object ref = description_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ description_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The description to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDescription(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ description_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDescription() {
+ description_ = getDefaultInstance().getDescription();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for description to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ description_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private int effect_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the effect field is set.
+ */
+ @java.lang.Override
+ public boolean hasEffect() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The enum numeric value on the wire for effect.
+ */
+ @java.lang.Override
+ public int getEffectValue() {
+ return effect_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @param value The enum numeric value on the wire for effect to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEffectValue(int value) {
+ effect_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The effect.
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyRule.Effect getEffect() {
+ com.google.iam.v3beta.AccessPolicyRule.Effect result =
+ com.google.iam.v3beta.AccessPolicyRule.Effect.forNumber(effect_);
+ return result == null ? com.google.iam.v3beta.AccessPolicyRule.Effect.UNRECOGNIZED : result;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @param value The effect to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEffect(com.google.iam.v3beta.AccessPolicyRule.Effect value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ effect_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearEffect() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ effect_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList principals_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensurePrincipalsIsMutable() {
+ if (!principals_.isModifiable()) {
+ principals_ = new com.google.protobuf.LazyStringArrayList(principals_);
+ }
+ bitField0_ |= 0x00000004;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return A list containing the principals.
+ */
+ public com.google.protobuf.ProtocolStringList getPrincipalsList() {
+ principals_.makeImmutable();
+ return principals_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The count of principals.
+ */
+ public int getPrincipalsCount() {
+ return principals_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index of the element to return.
+ * @return The principals at the given index.
+ */
+ public java.lang.String getPrincipals(int index) {
+ return principals_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the principals at the given index.
+ */
+ public com.google.protobuf.ByteString getPrincipalsBytes(int index) {
+ return principals_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index to set the value at.
+ * @param value The principals to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPrincipals(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePrincipalsIsMutable();
+ principals_.set(index, value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The principals to add.
+ * @return This builder for chaining.
+ */
+ public Builder addPrincipals(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePrincipalsIsMutable();
+ principals_.add(value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param values The principals to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllPrincipals(java.lang.Iterable values) {
+ ensurePrincipalsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, principals_);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPrincipals() {
+ principals_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The bytes of the principals to add.
+ * @return This builder for chaining.
+ */
+ public Builder addPrincipalsBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensurePrincipalsIsMutable();
+ principals_.add(value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList excludedPrincipals_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensureExcludedPrincipalsIsMutable() {
+ if (!excludedPrincipals_.isModifiable()) {
+ excludedPrincipals_ = new com.google.protobuf.LazyStringArrayList(excludedPrincipals_);
+ }
+ bitField0_ |= 0x00000008;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return A list containing the excludedPrincipals.
+ */
+ public com.google.protobuf.ProtocolStringList getExcludedPrincipalsList() {
+ excludedPrincipals_.makeImmutable();
+ return excludedPrincipals_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The count of excludedPrincipals.
+ */
+ public int getExcludedPrincipalsCount() {
+ return excludedPrincipals_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the element to return.
+ * @return The excludedPrincipals at the given index.
+ */
+ public java.lang.String getExcludedPrincipals(int index) {
+ return excludedPrincipals_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the excludedPrincipals at the given index.
+ */
+ public com.google.protobuf.ByteString getExcludedPrincipalsBytes(int index) {
+ return excludedPrincipals_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param index The index to set the value at.
+ * @param value The excludedPrincipals to set.
+ * @return This builder for chaining.
+ */
+ public Builder setExcludedPrincipals(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureExcludedPrincipalsIsMutable();
+ excludedPrincipals_.set(index, value);
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The excludedPrincipals to add.
+ * @return This builder for chaining.
+ */
+ public Builder addExcludedPrincipals(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureExcludedPrincipalsIsMutable();
+ excludedPrincipals_.add(value);
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param values The excludedPrincipals to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllExcludedPrincipals(java.lang.Iterable values) {
+ ensureExcludedPrincipalsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, excludedPrincipals_);
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearExcludedPrincipals() {
+ excludedPrincipals_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The bytes of the excludedPrincipals to add.
+ * @return This builder for chaining.
+ */
+ public Builder addExcludedPrincipalsBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensureExcludedPrincipalsIsMutable();
+ excludedPrincipals_.add(value);
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private com.google.iam.v3beta.AccessPolicyRule.Operation operation_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyRule.Operation,
+ com.google.iam.v3beta.AccessPolicyRule.Operation.Builder,
+ com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder>
+ operationBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the operation field is set.
+ */
+ public boolean hasOperation() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The operation.
+ */
+ public com.google.iam.v3beta.AccessPolicyRule.Operation getOperation() {
+ if (operationBuilder_ == null) {
+ return operation_ == null
+ ? com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance()
+ : operation_;
+ } else {
+ return operationBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setOperation(com.google.iam.v3beta.AccessPolicyRule.Operation value) {
+ if (operationBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ operation_ = value;
+ } else {
+ operationBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setOperation(
+ com.google.iam.v3beta.AccessPolicyRule.Operation.Builder builderForValue) {
+ if (operationBuilder_ == null) {
+ operation_ = builderForValue.build();
+ } else {
+ operationBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder mergeOperation(com.google.iam.v3beta.AccessPolicyRule.Operation value) {
+ if (operationBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) != 0)
+ && operation_ != null
+ && operation_
+ != com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance()) {
+ getOperationBuilder().mergeFrom(value);
+ } else {
+ operation_ = value;
+ }
+ } else {
+ operationBuilder_.mergeFrom(value);
+ }
+ if (operation_ != null) {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder clearOperation() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ operation_ = null;
+ if (operationBuilder_ != null) {
+ operationBuilder_.dispose();
+ operationBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRule.Operation.Builder getOperationBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return internalGetOperationFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder getOperationOrBuilder() {
+ if (operationBuilder_ != null) {
+ return operationBuilder_.getMessageOrBuilder();
+ } else {
+ return operation_ == null
+ ? com.google.iam.v3beta.AccessPolicyRule.Operation.getDefaultInstance()
+ : operation_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyRule.Operation,
+ com.google.iam.v3beta.AccessPolicyRule.Operation.Builder,
+ com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder>
+ internalGetOperationFieldBuilder() {
+ if (operationBuilder_ == null) {
+ operationBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicyRule.Operation,
+ com.google.iam.v3beta.AccessPolicyRule.Operation.Builder,
+ com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder>(
+ getOperation(), getParentForChildren(), isClean());
+ operation_ = null;
+ }
+ return operationBuilder_;
+ }
+
+ private static final class ConditionsConverter
+ implements com.google.protobuf.MapFieldBuilder.Converter<
+ java.lang.String, com.google.type.ExprOrBuilder, com.google.type.Expr> {
+ @java.lang.Override
+ public com.google.type.Expr build(com.google.type.ExprOrBuilder val) {
+ if (val instanceof com.google.type.Expr) {
+ return (com.google.type.Expr) val;
+ }
+ return ((com.google.type.Expr.Builder) val).build();
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.MapEntry defaultEntry() {
+ return ConditionsDefaultEntryHolder.defaultEntry;
+ }
+ }
+ ;
+
+ private static final ConditionsConverter conditionsConverter = new ConditionsConverter();
+
+ private com.google.protobuf.MapFieldBuilder<
+ java.lang.String,
+ com.google.type.ExprOrBuilder,
+ com.google.type.Expr,
+ com.google.type.Expr.Builder>
+ conditions_;
+
+ private com.google.protobuf.MapFieldBuilder<
+ java.lang.String,
+ com.google.type.ExprOrBuilder,
+ com.google.type.Expr,
+ com.google.type.Expr.Builder>
+ internalGetConditions() {
+ if (conditions_ == null) {
+ return new com.google.protobuf.MapFieldBuilder<>(conditionsConverter);
+ }
+ return conditions_;
+ }
+
+ private com.google.protobuf.MapFieldBuilder<
+ java.lang.String,
+ com.google.type.ExprOrBuilder,
+ com.google.type.Expr,
+ com.google.type.Expr.Builder>
+ internalGetMutableConditions() {
+ if (conditions_ == null) {
+ conditions_ = new com.google.protobuf.MapFieldBuilder<>(conditionsConverter);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return conditions_;
+ }
+
+ public int getConditionsCount() {
+ return internalGetConditions().ensureBuilderMap().size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public boolean containsConditions(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ return internalGetConditions().ensureBuilderMap().containsKey(key);
+ }
+
+ /** Use {@link #getConditionsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map getConditions() {
+ return getConditionsMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public java.util.Map getConditionsMap() {
+ return internalGetConditions().getImmutableMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public /* nullable */ com.google.type.Expr getConditionsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ com.google.type.Expr defaultValue) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map =
+ internalGetMutableConditions().ensureBuilderMap();
+ return map.containsKey(key) ? conditionsConverter.build(map.get(key)) : defaultValue;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.type.Expr getConditionsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map map =
+ internalGetMutableConditions().ensureBuilderMap();
+ if (!map.containsKey(key)) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ return conditionsConverter.build(map.get(key));
+ }
+
+ public Builder clearConditions() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ internalGetMutableConditions().clear();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder removeConditions(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ internalGetMutableConditions().ensureBuilderMap().remove(key);
+ return this;
+ }
+
+ /** Use alternate mutation accessors instead. */
+ @java.lang.Deprecated
+ public java.util.Map getMutableConditions() {
+ bitField0_ |= 0x00000020;
+ return internalGetMutableConditions().ensureMessageMap();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder putConditions(java.lang.String key, com.google.type.Expr value) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ if (value == null) {
+ throw new NullPointerException("map value");
+ }
+ internalGetMutableConditions().ensureBuilderMap().put(key, value);
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder putAllConditions(java.util.Map values) {
+ for (java.util.Map.Entry e : values.entrySet()) {
+ if (e.getKey() == null || e.getValue() == null) {
+ throw new NullPointerException();
+ }
+ }
+ internalGetMutableConditions().ensureBuilderMap().putAll(values);
+ bitField0_ |= 0x00000020;
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.type.Expr.Builder putConditionsBuilderIfAbsent(java.lang.String key) {
+ java.util.Map builderMap =
+ internalGetMutableConditions().ensureBuilderMap();
+ com.google.type.ExprOrBuilder entry = builderMap.get(key);
+ if (entry == null) {
+ entry = com.google.type.Expr.newBuilder();
+ builderMap.put(key, entry);
+ }
+ if (entry instanceof com.google.type.Expr) {
+ entry = ((com.google.type.Expr) entry).toBuilder();
+ builderMap.put(key, entry);
+ }
+ return (com.google.type.Expr.Builder) entry;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.AccessPolicyRule)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.AccessPolicyRule)
+ private static final com.google.iam.v3beta.AccessPolicyRule DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.AccessPolicyRule();
+ }
+
+ public static com.google.iam.v3beta.AccessPolicyRule getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public AccessPolicyRule 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.iam.v3beta.AccessPolicyRule getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyRuleOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyRuleOrBuilder.java
new file mode 100644
index 0000000000..745fb2b212
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/AccessPolicyRuleOrBuilder.java
@@ -0,0 +1,638 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policy_resources.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface AccessPolicyRuleOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.AccessPolicyRule)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the description field is set.
+ */
+ boolean hasDescription();
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The description.
+ */
+ java.lang.String getDescription();
+
+ /**
+ *
+ *
+ *
+ * Optional. Customer specified description of the rule. Must be less than or
+ * equal to 256 characters.
+ *
+ *
+ * optional string description = 1 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for description.
+ */
+ com.google.protobuf.ByteString getDescriptionBytes();
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the effect field is set.
+ */
+ boolean hasEffect();
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The enum numeric value on the wire for effect.
+ */
+ int getEffectValue();
+
+ /**
+ *
+ *
+ *
+ * Required. The effect of the rule.
+ *
+ *
+ *
+ * optional .google.iam.v3beta.AccessPolicyRule.Effect effect = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The effect.
+ */
+ com.google.iam.v3beta.AccessPolicyRule.Effect getEffect();
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return A list containing the principals.
+ */
+ java.util.List getPrincipalsList();
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The count of principals.
+ */
+ int getPrincipalsCount();
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index of the element to return.
+ * @return The principals at the given index.
+ */
+ java.lang.String getPrincipals(int index);
+
+ /**
+ *
+ *
+ *
+ * Required. The identities for which this rule's effect governs using one or
+ * more permissions on Google Cloud resources. This field can contain the
+ * following values:
+ *
+ * * `principal://goog/subject/{email_id}`: A specific Google Account.
+ * Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ * example, `principal://goog/subject/alice@example.com`.
+ *
+ * * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ * A Google Cloud service account. For example,
+ * `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ *
+ * * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ * `principalSet://goog/group/admins@example.com`.
+ *
+ * * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ * principals associated with the specified Google Workspace or Cloud
+ * Identity customer ID. For example,
+ * `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ *
+ *
+ * If an identifier that was previously set on a policy is soft deleted, then
+ * calls to read that policy will return the identifier with a deleted
+ * prefix. Users cannot set identifiers with this syntax.
+ *
+ * * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ * Google Account that was deleted recently. For example,
+ * `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ * the Google Account is recovered, this identifier reverts to the standard
+ * identifier for a Google Account.
+ *
+ * * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ * that was deleted recently. For example,
+ * `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ * If the Google group is restored, this identifier reverts to the standard
+ * identifier for a Google group.
+ *
+ * * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ * A Google Cloud service account that was deleted recently. For example,
+ * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ * If the service account is undeleted, this identifier reverts to the
+ * standard identifier for a service account.
+ *
+ *
+ * repeated string principals = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the principals at the given index.
+ */
+ com.google.protobuf.ByteString getPrincipalsBytes(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return A list containing the excludedPrincipals.
+ */
+ java.util.List getExcludedPrincipalsList();
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The count of excludedPrincipals.
+ */
+ int getExcludedPrincipalsCount();
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the element to return.
+ * @return The excludedPrincipals at the given index.
+ */
+ java.lang.String getExcludedPrincipals(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. The identities that are excluded from the access policy rule,
+ * even if they are listed in the `principals`. For example, you could add a
+ * Google group to the `principals`, then exclude specific users who belong to
+ * that group.
+ *
+ *
+ * repeated string excluded_principals = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the excludedPrincipals at the given index.
+ */
+ com.google.protobuf.ByteString getExcludedPrincipalsBytes(int index);
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the operation field is set.
+ */
+ boolean hasOperation();
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The operation.
+ */
+ com.google.iam.v3beta.AccessPolicyRule.Operation getOperation();
+
+ /**
+ *
+ *
+ *
+ * Required. Attributes that are used to determine whether this rule applies
+ * to a request.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicyRule.Operation operation = 10 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ com.google.iam.v3beta.AccessPolicyRule.OperationOrBuilder getOperationOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ int getConditionsCount();
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ boolean containsConditions(java.lang.String key);
+
+ /** Use {@link #getConditionsMap()} instead. */
+ @java.lang.Deprecated
+ java.util.Map getConditions();
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ java.util.Map getConditionsMap();
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ /* nullable */
+ com.google.type.Expr getConditionsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ com.google.type.Expr defaultValue);
+
+ /**
+ *
+ *
+ *
+ * Optional. The conditions that determine whether this rule applies to a
+ * request. Conditions are identified by their key, which is the FQDN of the
+ * service that they are relevant to. For example:
+ *
+ * ```
+ * "conditions": {
+ * "iam.googleapis.com": {
+ * "expression": <cel expression>
+ * }
+ * }
+ * ```
+ *
+ * Each rule is evaluated independently. If this rule does not apply
+ * to a request, other rules might still apply.
+ * Currently supported keys are as follows:
+ *
+ *
+ * * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ * resource fields.
+ *
+ * * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ * [resource
+ * tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ * combine them using boolean and logical operators. Other functions and
+ * operators are not supported.
+ *
+ *
+ *
+ * map<string, .google.type.Expr> conditions = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.type.Expr getConditionsOrThrow(java.lang.String key);
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/CreateAccessPolicyRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/CreateAccessPolicyRequest.java
new file mode 100644
index 0000000000..2324164556
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/CreateAccessPolicyRequest.java
@@ -0,0 +1,1315 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Request message for CreateAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.CreateAccessPolicyRequest}
+ */
+@com.google.protobuf.Generated
+public final class CreateAccessPolicyRequest extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.CreateAccessPolicyRequest)
+ CreateAccessPolicyRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "CreateAccessPolicyRequest");
+ }
+
+ // Use CreateAccessPolicyRequest.newBuilder() to construct.
+ private CreateAccessPolicyRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private CreateAccessPolicyRequest() {
+ parent_ = "";
+ accessPolicyId_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_CreateAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_CreateAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.CreateAccessPolicyRequest.class,
+ com.google.iam.v3beta.CreateAccessPolicyRequest.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int PARENT_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object parent_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The parent.
+ */
+ @java.lang.Override
+ public java.lang.String getParent() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ parent_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for parent.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getParentBytes() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ parent_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ACCESS_POLICY_ID_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object accessPolicyId_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The accessPolicyId.
+ */
+ @java.lang.Override
+ public java.lang.String getAccessPolicyId() {
+ java.lang.Object ref = accessPolicyId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ accessPolicyId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for accessPolicyId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getAccessPolicyIdBytes() {
+ java.lang.Object ref = accessPolicyId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ accessPolicyId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ACCESS_POLICY_FIELD_NUMBER = 3;
+ private com.google.iam.v3beta.AccessPolicy accessPolicy_;
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the accessPolicy field is set.
+ */
+ @java.lang.Override
+ public boolean hasAccessPolicy() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The accessPolicy.
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicy() {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPolicyOrBuilder() {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ }
+
+ public static final int VALIDATE_ONLY_FIELD_NUMBER = 4;
+ private boolean validateOnly_ = false;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the creation, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ @java.lang.Override
+ public boolean getValidateOnly() {
+ return validateOnly_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, parent_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(accessPolicyId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, accessPolicyId_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(3, getAccessPolicy());
+ }
+ if (validateOnly_ != false) {
+ output.writeBool(4, validateOnly_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, parent_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(accessPolicyId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, accessPolicyId_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getAccessPolicy());
+ }
+ if (validateOnly_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, validateOnly_);
+ }
+ 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.iam.v3beta.CreateAccessPolicyRequest)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.CreateAccessPolicyRequest other =
+ (com.google.iam.v3beta.CreateAccessPolicyRequest) obj;
+
+ if (!getParent().equals(other.getParent())) return false;
+ if (!getAccessPolicyId().equals(other.getAccessPolicyId())) return false;
+ if (hasAccessPolicy() != other.hasAccessPolicy()) return false;
+ if (hasAccessPolicy()) {
+ if (!getAccessPolicy().equals(other.getAccessPolicy())) return false;
+ }
+ if (getValidateOnly() != other.getValidateOnly()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + PARENT_FIELD_NUMBER;
+ hash = (53 * hash) + getParent().hashCode();
+ hash = (37 * hash) + ACCESS_POLICY_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getAccessPolicyId().hashCode();
+ if (hasAccessPolicy()) {
+ hash = (37 * hash) + ACCESS_POLICY_FIELD_NUMBER;
+ hash = (53 * hash) + getAccessPolicy().hashCode();
+ }
+ hash = (37 * hash) + VALIDATE_ONLY_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getValidateOnly());
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest 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.iam.v3beta.CreateAccessPolicyRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.CreateAccessPolicyRequest 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Request message for CreateAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.CreateAccessPolicyRequest}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.CreateAccessPolicyRequest)
+ com.google.iam.v3beta.CreateAccessPolicyRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_CreateAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_CreateAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.CreateAccessPolicyRequest.class,
+ com.google.iam.v3beta.CreateAccessPolicyRequest.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.CreateAccessPolicyRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ internalGetAccessPolicyFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ parent_ = "";
+ accessPolicyId_ = "";
+ accessPolicy_ = null;
+ if (accessPolicyBuilder_ != null) {
+ accessPolicyBuilder_.dispose();
+ accessPolicyBuilder_ = null;
+ }
+ validateOnly_ = false;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_CreateAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.CreateAccessPolicyRequest getDefaultInstanceForType() {
+ return com.google.iam.v3beta.CreateAccessPolicyRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.CreateAccessPolicyRequest build() {
+ com.google.iam.v3beta.CreateAccessPolicyRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.CreateAccessPolicyRequest buildPartial() {
+ com.google.iam.v3beta.CreateAccessPolicyRequest result =
+ new com.google.iam.v3beta.CreateAccessPolicyRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.CreateAccessPolicyRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.parent_ = parent_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.accessPolicyId_ = accessPolicyId_;
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.accessPolicy_ =
+ accessPolicyBuilder_ == null ? accessPolicy_ : accessPolicyBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.validateOnly_ = validateOnly_;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.CreateAccessPolicyRequest) {
+ return mergeFrom((com.google.iam.v3beta.CreateAccessPolicyRequest) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.CreateAccessPolicyRequest other) {
+ if (other == com.google.iam.v3beta.CreateAccessPolicyRequest.getDefaultInstance())
+ return this;
+ if (!other.getParent().isEmpty()) {
+ parent_ = other.parent_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (!other.getAccessPolicyId().isEmpty()) {
+ accessPolicyId_ = other.accessPolicyId_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (other.hasAccessPolicy()) {
+ mergeAccessPolicy(other.getAccessPolicy());
+ }
+ if (other.getValidateOnly() != false) {
+ setValidateOnly(other.getValidateOnly());
+ }
+ 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:
+ {
+ parent_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ accessPolicyId_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26:
+ {
+ input.readMessage(
+ internalGetAccessPolicyFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 32:
+ {
+ validateOnly_ = input.readBool();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 32
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object parent_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The parent.
+ */
+ public java.lang.String getParent() {
+ java.lang.Object ref = parent_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ parent_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for parent.
+ */
+ public com.google.protobuf.ByteString getParentBytes() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ parent_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The parent to set.
+ * @return This builder for chaining.
+ */
+ public Builder setParent(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ parent_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearParent() {
+ parent_ = getDefaultInstance().getParent();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The bytes for parent to set.
+ * @return This builder for chaining.
+ */
+ public Builder setParentBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ parent_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object accessPolicyId_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The accessPolicyId.
+ */
+ public java.lang.String getAccessPolicyId() {
+ java.lang.Object ref = accessPolicyId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ accessPolicyId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for accessPolicyId.
+ */
+ public com.google.protobuf.ByteString getAccessPolicyIdBytes() {
+ java.lang.Object ref = accessPolicyId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ accessPolicyId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The accessPolicyId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAccessPolicyId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ accessPolicyId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearAccessPolicyId() {
+ accessPolicyId_ = getDefaultInstance().getAccessPolicyId();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @param value The bytes for accessPolicyId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setAccessPolicyIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ accessPolicyId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private com.google.iam.v3beta.AccessPolicy accessPolicy_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>
+ accessPolicyBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the accessPolicy field is set.
+ */
+ public boolean hasAccessPolicy() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The accessPolicy.
+ */
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicy() {
+ if (accessPolicyBuilder_ == null) {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ } else {
+ return accessPolicyBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setAccessPolicy(com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPolicyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ accessPolicy_ = value;
+ } else {
+ accessPolicyBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setAccessPolicy(com.google.iam.v3beta.AccessPolicy.Builder builderForValue) {
+ if (accessPolicyBuilder_ == null) {
+ accessPolicy_ = builderForValue.build();
+ } else {
+ accessPolicyBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder mergeAccessPolicy(com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPolicyBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) != 0)
+ && accessPolicy_ != null
+ && accessPolicy_ != com.google.iam.v3beta.AccessPolicy.getDefaultInstance()) {
+ getAccessPolicyBuilder().mergeFrom(value);
+ } else {
+ accessPolicy_ = value;
+ }
+ } else {
+ accessPolicyBuilder_.mergeFrom(value);
+ }
+ if (accessPolicy_ != null) {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder clearAccessPolicy() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ accessPolicy_ = null;
+ if (accessPolicyBuilder_ != null) {
+ accessPolicyBuilder_.dispose();
+ accessPolicyBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicy.Builder getAccessPolicyBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return internalGetAccessPolicyFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPolicyOrBuilder() {
+ if (accessPolicyBuilder_ != null) {
+ return accessPolicyBuilder_.getMessageOrBuilder();
+ } else {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>
+ internalGetAccessPolicyFieldBuilder() {
+ if (accessPolicyBuilder_ == null) {
+ accessPolicyBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>(
+ getAccessPolicy(), getParentForChildren(), isClean());
+ accessPolicy_ = null;
+ }
+ return accessPolicyBuilder_;
+ }
+
+ private boolean validateOnly_;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the creation, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ @java.lang.Override
+ public boolean getValidateOnly() {
+ return validateOnly_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the creation, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The validateOnly to set.
+ * @return This builder for chaining.
+ */
+ public Builder setValidateOnly(boolean value) {
+
+ validateOnly_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the creation, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearValidateOnly() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ validateOnly_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.CreateAccessPolicyRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.CreateAccessPolicyRequest)
+ private static final com.google.iam.v3beta.CreateAccessPolicyRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.CreateAccessPolicyRequest();
+ }
+
+ public static com.google.iam.v3beta.CreateAccessPolicyRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CreateAccessPolicyRequest 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.iam.v3beta.CreateAccessPolicyRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/CreateAccessPolicyRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/CreateAccessPolicyRequestOrBuilder.java
new file mode 100644
index 0000000000..c4f23c45bc
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/CreateAccessPolicyRequestOrBuilder.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface CreateAccessPolicyRequestOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.CreateAccessPolicyRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The parent.
+ */
+ java.lang.String getParent();
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource where this access policy will be created.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for parent.
+ */
+ com.google.protobuf.ByteString getParentBytes();
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The accessPolicyId.
+ */
+ java.lang.String getAccessPolicyId();
+
+ /**
+ *
+ *
+ *
+ * Required. The ID to use for the access policy, which
+ * will become the final component of the access policy's
+ * resource name.
+ *
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, hyphens, or dots. Pattern,
+ * /[a-z][a-z0-9-\.]{2,62}/.
+ *
+ * This value must be unique among all access policies with the same parent.
+ *
+ *
+ * string access_policy_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The bytes for accessPolicyId.
+ */
+ com.google.protobuf.ByteString getAccessPolicyIdBytes();
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the accessPolicy field is set.
+ */
+ boolean hasAccessPolicy();
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The accessPolicy.
+ */
+ com.google.iam.v3beta.AccessPolicy getAccessPolicy();
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to create.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 3 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPolicyOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the creation, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ boolean getValidateOnly();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/DeleteAccessPolicyRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/DeleteAccessPolicyRequest.java
new file mode 100644
index 0000000000..4abd58f035
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/DeleteAccessPolicyRequest.java
@@ -0,0 +1,1050 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Request message for DeleteAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.DeleteAccessPolicyRequest}
+ */
+@com.google.protobuf.Generated
+public final class DeleteAccessPolicyRequest extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.DeleteAccessPolicyRequest)
+ DeleteAccessPolicyRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "DeleteAccessPolicyRequest");
+ }
+
+ // Use DeleteAccessPolicyRequest.newBuilder() to construct.
+ private DeleteAccessPolicyRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private DeleteAccessPolicyRequest() {
+ name_ = "";
+ etag_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest.class,
+ com.google.iam.v3beta.DeleteAccessPolicyRequest.Builder.class);
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ETAG_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object etag_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The etag.
+ */
+ @java.lang.Override
+ public java.lang.String getEtag() {
+ java.lang.Object ref = etag_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ etag_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for etag.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getEtagBytes() {
+ java.lang.Object ref = etag_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ etag_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int VALIDATE_ONLY_FIELD_NUMBER = 3;
+ private boolean validateOnly_ = false;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the deletion, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ @java.lang.Override
+ public boolean getValidateOnly() {
+ return validateOnly_;
+ }
+
+ public static final int FORCE_FIELD_NUMBER = 4;
+ private boolean force_ = false;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set to true, the request will force the deletion of the Policy
+ * even if the Policy references PolicyBindings.
+ *
+ *
+ * bool force = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The force.
+ */
+ @java.lang.Override
+ public boolean getForce() {
+ return force_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, name_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(etag_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, etag_);
+ }
+ if (validateOnly_ != false) {
+ output.writeBool(3, validateOnly_);
+ }
+ if (force_ != false) {
+ output.writeBool(4, force_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(etag_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, etag_);
+ }
+ if (validateOnly_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, validateOnly_);
+ }
+ if (force_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, force_);
+ }
+ 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.iam.v3beta.DeleteAccessPolicyRequest)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.DeleteAccessPolicyRequest other =
+ (com.google.iam.v3beta.DeleteAccessPolicyRequest) obj;
+
+ if (!getName().equals(other.getName())) return false;
+ if (!getEtag().equals(other.getEtag())) return false;
+ if (getValidateOnly() != other.getValidateOnly()) return false;
+ if (getForce() != other.getForce()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + ETAG_FIELD_NUMBER;
+ hash = (53 * hash) + getEtag().hashCode();
+ hash = (37 * hash) + VALIDATE_ONLY_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getValidateOnly());
+ hash = (37 * hash) + FORCE_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getForce());
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest 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.iam.v3beta.DeleteAccessPolicyRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.DeleteAccessPolicyRequest 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Request message for DeleteAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.DeleteAccessPolicyRequest}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.DeleteAccessPolicyRequest)
+ com.google.iam.v3beta.DeleteAccessPolicyRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.DeleteAccessPolicyRequest.class,
+ com.google.iam.v3beta.DeleteAccessPolicyRequest.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.DeleteAccessPolicyRequest.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ name_ = "";
+ etag_ = "";
+ validateOnly_ = false;
+ force_ = false;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_DeleteAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.DeleteAccessPolicyRequest getDefaultInstanceForType() {
+ return com.google.iam.v3beta.DeleteAccessPolicyRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.DeleteAccessPolicyRequest build() {
+ com.google.iam.v3beta.DeleteAccessPolicyRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.DeleteAccessPolicyRequest buildPartial() {
+ com.google.iam.v3beta.DeleteAccessPolicyRequest result =
+ new com.google.iam.v3beta.DeleteAccessPolicyRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.DeleteAccessPolicyRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.name_ = name_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.etag_ = etag_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.validateOnly_ = validateOnly_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.force_ = force_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.DeleteAccessPolicyRequest) {
+ return mergeFrom((com.google.iam.v3beta.DeleteAccessPolicyRequest) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.DeleteAccessPolicyRequest other) {
+ if (other == com.google.iam.v3beta.DeleteAccessPolicyRequest.getDefaultInstance())
+ return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (!other.getEtag().isEmpty()) {
+ etag_ = other.etag_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (other.getValidateOnly() != false) {
+ setValidateOnly(other.getValidateOnly());
+ }
+ if (other.getForce() != false) {
+ setForce(other.getForce());
+ }
+ 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:
+ {
+ name_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ etag_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 24:
+ {
+ validateOnly_ = input.readBool();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 24
+ case 32:
+ {
+ force_ = input.readBool();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 32
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+ name_ = getDefaultInstance().getName();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object etag_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The etag.
+ */
+ public java.lang.String getEtag() {
+ java.lang.Object ref = etag_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ etag_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for etag.
+ */
+ public com.google.protobuf.ByteString getEtagBytes() {
+ java.lang.Object ref = etag_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ etag_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The etag to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEtag(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ etag_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearEtag() {
+ etag_ = getDefaultInstance().getEtag();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for etag to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEtagBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ etag_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private boolean validateOnly_;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the deletion, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ @java.lang.Override
+ public boolean getValidateOnly() {
+ return validateOnly_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the deletion, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The validateOnly to set.
+ * @return This builder for chaining.
+ */
+ public Builder setValidateOnly(boolean value) {
+
+ validateOnly_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the deletion, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearValidateOnly() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ validateOnly_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean force_;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set to true, the request will force the deletion of the Policy
+ * even if the Policy references PolicyBindings.
+ *
+ *
+ * bool force = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The force.
+ */
+ @java.lang.Override
+ public boolean getForce() {
+ return force_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set to true, the request will force the deletion of the Policy
+ * even if the Policy references PolicyBindings.
+ *
+ *
+ * bool force = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The force to set.
+ * @return This builder for chaining.
+ */
+ public Builder setForce(boolean value) {
+
+ force_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set to true, the request will force the deletion of the Policy
+ * even if the Policy references PolicyBindings.
+ *
+ *
+ * bool force = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearForce() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ force_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.DeleteAccessPolicyRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.DeleteAccessPolicyRequest)
+ private static final com.google.iam.v3beta.DeleteAccessPolicyRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.DeleteAccessPolicyRequest();
+ }
+
+ public static com.google.iam.v3beta.DeleteAccessPolicyRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public DeleteAccessPolicyRequest 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.iam.v3beta.DeleteAccessPolicyRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/DeleteAccessPolicyRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/DeleteAccessPolicyRequestOrBuilder.java
new file mode 100644
index 0000000000..fcc14c0fdb
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/DeleteAccessPolicyRequestOrBuilder.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface DeleteAccessPolicyRequestOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.DeleteAccessPolicyRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ java.lang.String getName();
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to delete.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString getNameBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The etag.
+ */
+ java.lang.String getEtag();
+
+ /**
+ *
+ *
+ *
+ * Optional. The etag of the access policy. If this is provided, it must match
+ * the server's etag.
+ *
+ *
+ * string etag = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for etag.
+ */
+ com.google.protobuf.ByteString getEtagBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the deletion, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ boolean getValidateOnly();
+
+ /**
+ *
+ *
+ *
+ * Optional. If set to true, the request will force the deletion of the Policy
+ * even if the Policy references PolicyBindings.
+ *
+ *
+ * bool force = 4 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The force.
+ */
+ boolean getForce();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/GetAccessPolicyRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/GetAccessPolicyRequest.java
new file mode 100644
index 0000000000..90c54fb12a
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/GetAccessPolicyRequest.java
@@ -0,0 +1,651 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Request message for GetAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.GetAccessPolicyRequest}
+ */
+@com.google.protobuf.Generated
+public final class GetAccessPolicyRequest extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.GetAccessPolicyRequest)
+ GetAccessPolicyRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "GetAccessPolicyRequest");
+ }
+
+ // Use GetAccessPolicyRequest.newBuilder() to construct.
+ private GetAccessPolicyRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private GetAccessPolicyRequest() {
+ name_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_GetAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_GetAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.GetAccessPolicyRequest.class,
+ com.google.iam.v3beta.GetAccessPolicyRequest.Builder.class);
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, name_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
+ }
+ 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.iam.v3beta.GetAccessPolicyRequest)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.GetAccessPolicyRequest other =
+ (com.google.iam.v3beta.GetAccessPolicyRequest) obj;
+
+ if (!getName().equals(other.getName())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest 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.iam.v3beta.GetAccessPolicyRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.GetAccessPolicyRequest 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Request message for GetAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.GetAccessPolicyRequest}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.GetAccessPolicyRequest)
+ com.google.iam.v3beta.GetAccessPolicyRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_GetAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_GetAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.GetAccessPolicyRequest.class,
+ com.google.iam.v3beta.GetAccessPolicyRequest.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.GetAccessPolicyRequest.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ name_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_GetAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.GetAccessPolicyRequest getDefaultInstanceForType() {
+ return com.google.iam.v3beta.GetAccessPolicyRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.GetAccessPolicyRequest build() {
+ com.google.iam.v3beta.GetAccessPolicyRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.GetAccessPolicyRequest buildPartial() {
+ com.google.iam.v3beta.GetAccessPolicyRequest result =
+ new com.google.iam.v3beta.GetAccessPolicyRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.GetAccessPolicyRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.name_ = name_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.GetAccessPolicyRequest) {
+ return mergeFrom((com.google.iam.v3beta.GetAccessPolicyRequest) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.GetAccessPolicyRequest other) {
+ if (other == com.google.iam.v3beta.GetAccessPolicyRequest.getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ name_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+ name_ = getDefaultInstance().getName();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.GetAccessPolicyRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.GetAccessPolicyRequest)
+ private static final com.google.iam.v3beta.GetAccessPolicyRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.GetAccessPolicyRequest();
+ }
+
+ public static com.google.iam.v3beta.GetAccessPolicyRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public GetAccessPolicyRequest 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.iam.v3beta.GetAccessPolicyRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/GetAccessPolicyRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/GetAccessPolicyRequestOrBuilder.java
new file mode 100644
index 0000000000..db8a03d4dd
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/GetAccessPolicyRequestOrBuilder.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface GetAccessPolicyRequestOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.GetAccessPolicyRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ java.lang.String getName();
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy to retrieve.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString getNameBytes();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesRequest.java
new file mode 100644
index 0000000000..7f4755169d
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesRequest.java
@@ -0,0 +1,1003 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Request message for ListAccessPolicies method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.ListAccessPoliciesRequest}
+ */
+@com.google.protobuf.Generated
+public final class ListAccessPoliciesRequest extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.ListAccessPoliciesRequest)
+ ListAccessPoliciesRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "ListAccessPoliciesRequest");
+ }
+
+ // Use ListAccessPoliciesRequest.newBuilder() to construct.
+ private ListAccessPoliciesRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private ListAccessPoliciesRequest() {
+ parent_ = "";
+ pageToken_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.ListAccessPoliciesRequest.class,
+ com.google.iam.v3beta.ListAccessPoliciesRequest.Builder.class);
+ }
+
+ public static final int PARENT_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object parent_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The parent.
+ */
+ @java.lang.Override
+ public java.lang.String getParent() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ parent_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for parent.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getParentBytes() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ parent_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PAGE_SIZE_FIELD_NUMBER = 2;
+ private int pageSize_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of access policies to return. The
+ * service may return fewer than this value.
+ *
+ * If unspecified, at most 50 access policies will be returned. Valid value
+ * ranges from 1 to 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ @java.lang.Override
+ public int getPageSize() {
+ return pageSize_;
+ }
+
+ public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object pageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ @java.lang.Override
+ public java.lang.String getPageToken() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ pageToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getPageTokenBytes() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ pageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, parent_);
+ }
+ if (pageSize_ != 0) {
+ output.writeInt32(2, pageSize_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, pageToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, parent_);
+ }
+ if (pageSize_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, pageSize_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, pageToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.iam.v3beta.ListAccessPoliciesRequest)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.ListAccessPoliciesRequest other =
+ (com.google.iam.v3beta.ListAccessPoliciesRequest) obj;
+
+ if (!getParent().equals(other.getParent())) return false;
+ if (getPageSize() != other.getPageSize()) return false;
+ if (!getPageToken().equals(other.getPageToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + PARENT_FIELD_NUMBER;
+ hash = (53 * hash) + getParent().hashCode();
+ hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
+ hash = (53 * hash) + getPageSize();
+ hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getPageToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest 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.iam.v3beta.ListAccessPoliciesRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.ListAccessPoliciesRequest 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Request message for ListAccessPolicies method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.ListAccessPoliciesRequest}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.ListAccessPoliciesRequest)
+ com.google.iam.v3beta.ListAccessPoliciesRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.ListAccessPoliciesRequest.class,
+ com.google.iam.v3beta.ListAccessPoliciesRequest.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.ListAccessPoliciesRequest.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ parent_ = "";
+ pageSize_ = 0;
+ pageToken_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.ListAccessPoliciesRequest getDefaultInstanceForType() {
+ return com.google.iam.v3beta.ListAccessPoliciesRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.ListAccessPoliciesRequest build() {
+ com.google.iam.v3beta.ListAccessPoliciesRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.ListAccessPoliciesRequest buildPartial() {
+ com.google.iam.v3beta.ListAccessPoliciesRequest result =
+ new com.google.iam.v3beta.ListAccessPoliciesRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.ListAccessPoliciesRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.parent_ = parent_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.pageSize_ = pageSize_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.pageToken_ = pageToken_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.ListAccessPoliciesRequest) {
+ return mergeFrom((com.google.iam.v3beta.ListAccessPoliciesRequest) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.ListAccessPoliciesRequest other) {
+ if (other == com.google.iam.v3beta.ListAccessPoliciesRequest.getDefaultInstance())
+ return this;
+ if (!other.getParent().isEmpty()) {
+ parent_ = other.parent_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (other.getPageSize() != 0) {
+ setPageSize(other.getPageSize());
+ }
+ if (!other.getPageToken().isEmpty()) {
+ pageToken_ = other.pageToken_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ parent_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 16:
+ {
+ pageSize_ = input.readInt32();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ case 26:
+ {
+ pageToken_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object parent_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The parent.
+ */
+ public java.lang.String getParent() {
+ java.lang.Object ref = parent_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ parent_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for parent.
+ */
+ public com.google.protobuf.ByteString getParentBytes() {
+ java.lang.Object ref = parent_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ parent_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The parent to set.
+ * @return This builder for chaining.
+ */
+ public Builder setParent(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ parent_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearParent() {
+ parent_ = getDefaultInstance().getParent();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The bytes for parent to set.
+ * @return This builder for chaining.
+ */
+ public Builder setParentBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ parent_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private int pageSize_;
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of access policies to return. The
+ * service may return fewer than this value.
+ *
+ * If unspecified, at most 50 access policies will be returned. Valid value
+ * ranges from 1 to 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ @java.lang.Override
+ public int getPageSize() {
+ return pageSize_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of access policies to return. The
+ * service may return fewer than this value.
+ *
+ * If unspecified, at most 50 access policies will be returned. Valid value
+ * ranges from 1 to 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The pageSize to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageSize(int value) {
+
+ pageSize_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of access policies to return. The
+ * service may return fewer than this value.
+ *
+ * If unspecified, at most 50 access policies will be returned. Valid value
+ * ranges from 1 to 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageSize() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ pageSize_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object pageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ public java.lang.String getPageToken() {
+ java.lang.Object ref = pageToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ pageToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ public com.google.protobuf.ByteString getPageTokenBytes() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ pageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The pageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ pageToken_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageToken() {
+ pageToken_ = getDefaultInstance().getPageToken();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for pageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ pageToken_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.ListAccessPoliciesRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.ListAccessPoliciesRequest)
+ private static final com.google.iam.v3beta.ListAccessPoliciesRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.ListAccessPoliciesRequest();
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ListAccessPoliciesRequest 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.iam.v3beta.ListAccessPoliciesRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesRequestOrBuilder.java
new file mode 100644
index 0000000000..04b7097937
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesRequestOrBuilder.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface ListAccessPoliciesRequestOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.ListAccessPoliciesRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The parent.
+ */
+ java.lang.String getParent();
+
+ /**
+ *
+ *
+ *
+ * Required. The parent resource, which owns the collection of access policy
+ * resources.
+ *
+ * Format:
+ * `projects/{project_id}/locations/{location}`
+ * `projects/{project_number}/locations/{location}`
+ * `folders/{folder_id}/locations/{location}`
+ * `organizations/{organization_id}/locations/{location}`
+ *
+ *
+ *
+ * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for parent.
+ */
+ com.google.protobuf.ByteString getParentBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of access policies to return. The
+ * service may return fewer than this value.
+ *
+ * If unspecified, at most 50 access policies will be returned. Valid value
+ * ranges from 1 to 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ int getPageSize();
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ java.lang.String getPageToken();
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `ListAccessPolicies` call. Provide this to retrieve the
+ * subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `ListAccessPolicies` must match the call that provided the
+ * page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ com.google.protobuf.ByteString getPageTokenBytes();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesResponse.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesResponse.java
new file mode 100644
index 0000000000..bf8fdfba65
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesResponse.java
@@ -0,0 +1,1122 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Response message for ListAccessPolicies method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.ListAccessPoliciesResponse}
+ */
+@com.google.protobuf.Generated
+public final class ListAccessPoliciesResponse extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.ListAccessPoliciesResponse)
+ ListAccessPoliciesResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "ListAccessPoliciesResponse");
+ }
+
+ // Use ListAccessPoliciesResponse.newBuilder() to construct.
+ private ListAccessPoliciesResponse(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private ListAccessPoliciesResponse() {
+ accessPolicies_ = java.util.Collections.emptyList();
+ nextPageToken_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesResponse_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.ListAccessPoliciesResponse.class,
+ com.google.iam.v3beta.ListAccessPoliciesResponse.Builder.class);
+ }
+
+ public static final int ACCESS_POLICIES_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private java.util.List accessPolicies_;
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ @java.lang.Override
+ public java.util.List getAccessPoliciesList() {
+ return accessPolicies_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ @java.lang.Override
+ public java.util.List extends com.google.iam.v3beta.AccessPolicyOrBuilder>
+ getAccessPoliciesOrBuilderList() {
+ return accessPolicies_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ @java.lang.Override
+ public int getAccessPoliciesCount() {
+ return accessPolicies_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicies(int index) {
+ return accessPolicies_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPoliciesOrBuilder(int index) {
+ return accessPolicies_.get(index);
+ }
+
+ public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object nextPageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The nextPageToken.
+ */
+ @java.lang.Override
+ public java.lang.String getNextPageToken() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ nextPageToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for nextPageToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNextPageTokenBytes() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ nextPageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < accessPolicies_.size(); i++) {
+ output.writeMessage(1, accessPolicies_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, nextPageToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < accessPolicies_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, accessPolicies_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, nextPageToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.iam.v3beta.ListAccessPoliciesResponse)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.ListAccessPoliciesResponse other =
+ (com.google.iam.v3beta.ListAccessPoliciesResponse) obj;
+
+ if (!getAccessPoliciesList().equals(other.getAccessPoliciesList())) return false;
+ if (!getNextPageToken().equals(other.getNextPageToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getAccessPoliciesCount() > 0) {
+ hash = (37 * hash) + ACCESS_POLICIES_FIELD_NUMBER;
+ hash = (53 * hash) + getAccessPoliciesList().hashCode();
+ }
+ hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getNextPageToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse 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.iam.v3beta.ListAccessPoliciesResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.ListAccessPoliciesResponse 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Response message for ListAccessPolicies method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.ListAccessPoliciesResponse}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.ListAccessPoliciesResponse)
+ com.google.iam.v3beta.ListAccessPoliciesResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesResponse_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.ListAccessPoliciesResponse.class,
+ com.google.iam.v3beta.ListAccessPoliciesResponse.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.ListAccessPoliciesResponse.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ if (accessPoliciesBuilder_ == null) {
+ accessPolicies_ = java.util.Collections.emptyList();
+ } else {
+ accessPolicies_ = null;
+ accessPoliciesBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ nextPageToken_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_ListAccessPoliciesResponse_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.ListAccessPoliciesResponse getDefaultInstanceForType() {
+ return com.google.iam.v3beta.ListAccessPoliciesResponse.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.ListAccessPoliciesResponse build() {
+ com.google.iam.v3beta.ListAccessPoliciesResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.ListAccessPoliciesResponse buildPartial() {
+ com.google.iam.v3beta.ListAccessPoliciesResponse result =
+ new com.google.iam.v3beta.ListAccessPoliciesResponse(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(
+ com.google.iam.v3beta.ListAccessPoliciesResponse result) {
+ if (accessPoliciesBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ accessPolicies_ = java.util.Collections.unmodifiableList(accessPolicies_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.accessPolicies_ = accessPolicies_;
+ } else {
+ result.accessPolicies_ = accessPoliciesBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.ListAccessPoliciesResponse result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.nextPageToken_ = nextPageToken_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.ListAccessPoliciesResponse) {
+ return mergeFrom((com.google.iam.v3beta.ListAccessPoliciesResponse) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.ListAccessPoliciesResponse other) {
+ if (other == com.google.iam.v3beta.ListAccessPoliciesResponse.getDefaultInstance())
+ return this;
+ if (accessPoliciesBuilder_ == null) {
+ if (!other.accessPolicies_.isEmpty()) {
+ if (accessPolicies_.isEmpty()) {
+ accessPolicies_ = other.accessPolicies_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.addAll(other.accessPolicies_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.accessPolicies_.isEmpty()) {
+ if (accessPoliciesBuilder_.isEmpty()) {
+ accessPoliciesBuilder_.dispose();
+ accessPoliciesBuilder_ = null;
+ accessPolicies_ = other.accessPolicies_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ accessPoliciesBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
+ ? internalGetAccessPoliciesFieldBuilder()
+ : null;
+ } else {
+ accessPoliciesBuilder_.addAllMessages(other.accessPolicies_);
+ }
+ }
+ }
+ if (!other.getNextPageToken().isEmpty()) {
+ nextPageToken_ = other.nextPageToken_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ com.google.iam.v3beta.AccessPolicy m =
+ input.readMessage(
+ com.google.iam.v3beta.AccessPolicy.parser(), extensionRegistry);
+ if (accessPoliciesBuilder_ == null) {
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.add(m);
+ } else {
+ accessPoliciesBuilder_.addMessage(m);
+ }
+ break;
+ } // case 10
+ case 18:
+ {
+ nextPageToken_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.util.List accessPolicies_ =
+ java.util.Collections.emptyList();
+
+ private void ensureAccessPoliciesIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ accessPolicies_ =
+ new java.util.ArrayList(accessPolicies_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>
+ accessPoliciesBuilder_;
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public java.util.List getAccessPoliciesList() {
+ if (accessPoliciesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(accessPolicies_);
+ } else {
+ return accessPoliciesBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public int getAccessPoliciesCount() {
+ if (accessPoliciesBuilder_ == null) {
+ return accessPolicies_.size();
+ } else {
+ return accessPoliciesBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicies(int index) {
+ if (accessPoliciesBuilder_ == null) {
+ return accessPolicies_.get(index);
+ } else {
+ return accessPoliciesBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder setAccessPolicies(int index, com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPoliciesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.set(index, value);
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder setAccessPolicies(
+ int index, com.google.iam.v3beta.AccessPolicy.Builder builderForValue) {
+ if (accessPoliciesBuilder_ == null) {
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder addAccessPolicies(com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPoliciesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.add(value);
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder addAccessPolicies(int index, com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPoliciesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.add(index, value);
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder addAccessPolicies(com.google.iam.v3beta.AccessPolicy.Builder builderForValue) {
+ if (accessPoliciesBuilder_ == null) {
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.add(builderForValue.build());
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder addAccessPolicies(
+ int index, com.google.iam.v3beta.AccessPolicy.Builder builderForValue) {
+ if (accessPoliciesBuilder_ == null) {
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder addAllAccessPolicies(
+ java.lang.Iterable extends com.google.iam.v3beta.AccessPolicy> values) {
+ if (accessPoliciesBuilder_ == null) {
+ ensureAccessPoliciesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, accessPolicies_);
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder clearAccessPolicies() {
+ if (accessPoliciesBuilder_ == null) {
+ accessPolicies_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public Builder removeAccessPolicies(int index) {
+ if (accessPoliciesBuilder_ == null) {
+ ensureAccessPoliciesIsMutable();
+ accessPolicies_.remove(index);
+ onChanged();
+ } else {
+ accessPoliciesBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public com.google.iam.v3beta.AccessPolicy.Builder getAccessPoliciesBuilder(int index) {
+ return internalGetAccessPoliciesFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPoliciesOrBuilder(int index) {
+ if (accessPoliciesBuilder_ == null) {
+ return accessPolicies_.get(index);
+ } else {
+ return accessPoliciesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public java.util.List extends com.google.iam.v3beta.AccessPolicyOrBuilder>
+ getAccessPoliciesOrBuilderList() {
+ if (accessPoliciesBuilder_ != null) {
+ return accessPoliciesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(accessPolicies_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public com.google.iam.v3beta.AccessPolicy.Builder addAccessPoliciesBuilder() {
+ return internalGetAccessPoliciesFieldBuilder()
+ .addBuilder(com.google.iam.v3beta.AccessPolicy.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public com.google.iam.v3beta.AccessPolicy.Builder addAccessPoliciesBuilder(int index) {
+ return internalGetAccessPoliciesFieldBuilder()
+ .addBuilder(index, com.google.iam.v3beta.AccessPolicy.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ public java.util.List
+ getAccessPoliciesBuilderList() {
+ return internalGetAccessPoliciesFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>
+ internalGetAccessPoliciesFieldBuilder() {
+ if (accessPoliciesBuilder_ == null) {
+ accessPoliciesBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>(
+ accessPolicies_,
+ ((bitField0_ & 0x00000001) != 0),
+ getParentForChildren(),
+ isClean());
+ accessPolicies_ = null;
+ }
+ return accessPoliciesBuilder_;
+ }
+
+ private java.lang.Object nextPageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The nextPageToken.
+ */
+ public java.lang.String getNextPageToken() {
+ java.lang.Object ref = nextPageToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ nextPageToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for nextPageToken.
+ */
+ public com.google.protobuf.ByteString getNextPageTokenBytes() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ nextPageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The nextPageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNextPageToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearNextPageToken() {
+ nextPageToken_ = getDefaultInstance().getNextPageToken();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for nextPageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.ListAccessPoliciesResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.ListAccessPoliciesResponse)
+ private static final com.google.iam.v3beta.ListAccessPoliciesResponse DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.ListAccessPoliciesResponse();
+ }
+
+ public static com.google.iam.v3beta.ListAccessPoliciesResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ListAccessPoliciesResponse 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.iam.v3beta.ListAccessPoliciesResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesResponseOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesResponseOrBuilder.java
new file mode 100644
index 0000000000..478881783b
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListAccessPoliciesResponseOrBuilder.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface ListAccessPoliciesResponseOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.ListAccessPoliciesResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ java.util.List getAccessPoliciesList();
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ com.google.iam.v3beta.AccessPolicy getAccessPolicies(int index);
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ int getAccessPoliciesCount();
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ java.util.List extends com.google.iam.v3beta.AccessPolicyOrBuilder>
+ getAccessPoliciesOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * The access policies from the specified parent.
+ *
+ *
+ * repeated .google.iam.v3beta.AccessPolicy access_policies = 1;
+ */
+ com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPoliciesOrBuilder(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The nextPageToken.
+ */
+ java.lang.String getNextPageToken();
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for nextPageToken.
+ */
+ com.google.protobuf.ByteString getNextPageTokenBytes();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequest.java
index 515549b225..2133e662f8 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequest.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequest.java
@@ -155,8 +155,7 @@ public com.google.protobuf.ByteString getParentBytes() {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -239,7 +238,8 @@ public com.google.protobuf.ByteString getPageTokenBytes() {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -273,7 +273,8 @@ public java.lang.String getFilter() {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -852,8 +853,7 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -872,8 +872,7 @@ public int getPageSize() {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -896,8 +895,7 @@ public Builder setPageSize(int value) {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -1049,7 +1047,8 @@ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -1082,7 +1081,8 @@ public java.lang.String getFilter() {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -1115,7 +1115,8 @@ public com.google.protobuf.ByteString getFilterBytes() {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -1147,7 +1148,8 @@ public Builder setFilter(java.lang.String value) {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -1175,7 +1177,8 @@ public Builder clearFilter() {
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequestOrBuilder.java
index d2e42b7448..cf2ab77009 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequestOrBuilder.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/ListPolicyBindingsRequestOrBuilder.java
@@ -79,8 +79,7 @@ public interface ListPolicyBindingsRequestOrBuilder
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -128,7 +127,8 @@ public interface ListPolicyBindingsRequestOrBuilder
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
@@ -151,7 +151,8 @@ public interface ListPolicyBindingsRequestOrBuilder
*
*
* Optional. An expression for filtering the results of the request. Filter
- * rules are case insensitive. Some eligible fields for filtering are:
+ * rules are case insensitive. Some eligible fields for filtering are the
+ * following:
*
* + `target`
* + `policy`
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBinding.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBinding.java
index 6ecbe5324e..54674f1c92 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBinding.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBinding.java
@@ -92,7 +92,7 @@ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldRefl
*
*
*
- * Different policy kinds supported in this binding.
+ * The different policy kinds supported in this binding.
*
*
* Protobuf enum {@code google.iam.v3beta.PolicyBinding.PolicyKind}
@@ -118,6 +118,16 @@ public enum PolicyKind implements com.google.protobuf.ProtocolMessageEnum {
* PRINCIPAL_ACCESS_BOUNDARY = 1;
*/
PRINCIPAL_ACCESS_BOUNDARY(1),
+ /**
+ *
+ *
+ *
+ * Access policy kind.
+ *
+ *
+ * ACCESS = 2;
+ */
+ ACCESS(2),
UNRECOGNIZED(-1),
;
@@ -153,6 +163,17 @@ public enum PolicyKind implements com.google.protobuf.ProtocolMessageEnum {
*/
public static final int PRINCIPAL_ACCESS_BOUNDARY_VALUE = 1;
+ /**
+ *
+ *
+ *
+ * Access policy kind.
+ *
+ *
+ * ACCESS = 2;
+ */
+ public static final int ACCESS_VALUE = 2;
+
public final int getNumber() {
if (this == UNRECOGNIZED) {
throw new java.lang.IllegalArgumentException(
@@ -181,6 +202,8 @@ public static PolicyKind forNumber(int value) {
return POLICY_KIND_UNSPECIFIED;
case 1:
return PRINCIPAL_ACCESS_BOUNDARY;
+ case 2:
+ return ACCESS;
default:
return null;
}
@@ -243,23 +266,24 @@ public interface TargetOrBuilder
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -277,23 +301,24 @@ public interface TargetOrBuilder
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -311,23 +336,24 @@ public interface TargetOrBuilder
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -341,6 +367,75 @@ public interface TargetOrBuilder
*/
com.google.protobuf.ByteString getPrincipalSetBytes();
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return Whether the resource field is set.
+ */
+ boolean hasResource();
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return The resource.
+ */
+ java.lang.String getResource();
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return The bytes for resource.
+ */
+ com.google.protobuf.ByteString getResourceBytes();
+
com.google.iam.v3beta.PolicyBinding.Target.TargetCase getTargetCase();
}
@@ -348,7 +443,7 @@ public interface TargetOrBuilder
*
*
*
- * Target is the full resource name of the resource to which the policy will
+ * The full resource name of the resource to which the policy will
* be bound. Immutable once set.
*
*
@@ -402,6 +497,7 @@ public enum TargetCase
com.google.protobuf.Internal.EnumLite,
com.google.protobuf.AbstractMessage.InternalOneOfEnum {
PRINCIPAL_SET(1),
+ RESOURCE(2),
TARGET_NOT_SET(0);
private final int value;
@@ -423,6 +519,8 @@ public static TargetCase forNumber(int value) {
switch (value) {
case 1:
return PRINCIPAL_SET;
+ case 2:
+ return RESOURCE;
case 0:
return TARGET_NOT_SET;
default:
@@ -445,23 +543,24 @@ public TargetCase getTargetCase() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -481,23 +580,24 @@ public boolean hasPrincipalSet() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -530,23 +630,24 @@ public java.lang.String getPrincipalSet() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -575,6 +676,109 @@ public com.google.protobuf.ByteString getPrincipalSetBytes() {
}
}
+ public static final int RESOURCE_FIELD_NUMBER = 2;
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return Whether the resource field is set.
+ */
+ public boolean hasResource() {
+ return targetCase_ == 2;
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return The resource.
+ */
+ public java.lang.String getResource() {
+ java.lang.Object ref = "";
+ if (targetCase_ == 2) {
+ ref = target_;
+ }
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (targetCase_ == 2) {
+ target_ = s;
+ }
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return The bytes for resource.
+ */
+ public com.google.protobuf.ByteString getResourceBytes() {
+ java.lang.Object ref = "";
+ if (targetCase_ == 2) {
+ ref = target_;
+ }
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ if (targetCase_ == 2) {
+ target_ = b;
+ }
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -592,6 +796,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (targetCase_ == 1) {
com.google.protobuf.GeneratedMessage.writeString(output, 1, target_);
}
+ if (targetCase_ == 2) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, target_);
+ }
getUnknownFields().writeTo(output);
}
@@ -604,6 +811,9 @@ public int getSerializedSize() {
if (targetCase_ == 1) {
size += com.google.protobuf.GeneratedMessage.computeStringSize(1, target_);
}
+ if (targetCase_ == 2) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, target_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -625,6 +835,9 @@ public boolean equals(final java.lang.Object obj) {
case 1:
if (!getPrincipalSet().equals(other.getPrincipalSet())) return false;
break;
+ case 2:
+ if (!getResource().equals(other.getResource())) return false;
+ break;
case 0:
default:
}
@@ -644,6 +857,10 @@ public int hashCode() {
hash = (37 * hash) + PRINCIPAL_SET_FIELD_NUMBER;
hash = (53 * hash) + getPrincipalSet().hashCode();
break;
+ case 2:
+ hash = (37 * hash) + RESOURCE_FIELD_NUMBER;
+ hash = (53 * hash) + getResource().hashCode();
+ break;
case 0:
default:
}
@@ -752,7 +969,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
*
*
*
- * Target is the full resource name of the resource to which the policy will
+ * The full resource name of the resource to which the policy will
* be bound. Immutable once set.
*
*
@@ -854,6 +1071,13 @@ public Builder mergeFrom(com.google.iam.v3beta.PolicyBinding.Target other) {
onChanged();
break;
}
+ case RESOURCE:
+ {
+ targetCase_ = 2;
+ target_ = other.target_;
+ onChanged();
+ break;
+ }
case TARGET_NOT_SET:
{
break;
@@ -892,6 +1116,13 @@ public Builder mergeFrom(
target_ = s;
break;
} // case 10
+ case 18:
+ {
+ java.lang.String s = input.readStringRequireUtf8();
+ targetCase_ = 2;
+ target_ = s;
+ break;
+ } // case 18
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -929,23 +1160,24 @@ public Builder clearTarget() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -966,23 +1198,24 @@ public boolean hasPrincipalSet() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -1016,23 +1249,24 @@ public java.lang.String getPrincipalSet() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -1066,23 +1300,24 @@ public com.google.protobuf.ByteString getPrincipalSetBytes() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -1109,23 +1344,24 @@ public Builder setPrincipalSet(java.lang.String value) {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -1150,23 +1386,24 @@ public Builder clearPrincipalSet() {
*
*
*
- * Immutable. Full Resource Name used for principal access boundary policy
- * bindings. The principal set must be directly parented by the policy
- * binding's parent or same as the parent if the target is a
- * project/folder/organization.
+ * Immutable. The full resource name that's used for principal access
+ * boundary policy bindings. The principal set must be directly parented
+ * by the policy binding's parent or same as the parent if the target is a
+ * project, folder, or organization.
*
* Examples:
- * * For binding's parented by an organization:
+ *
+ * * For bindings parented by an organization:
* * Organization:
* `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
* * Workforce Identity:
* `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
* * Workspace Identity:
* `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- * * For binding's parented by a folder:
+ * * For bindings parented by a folder:
* * Folder:
* `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- * * For binding's parented by a project:
+ * * For bindings parented by a project:
* * Project:
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
* * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
@@ -1190,6 +1427,205 @@ public Builder setPrincipalSetBytes(com.google.protobuf.ByteString value) {
return this;
}
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return Whether the resource field is set.
+ */
+ @java.lang.Override
+ public boolean hasResource() {
+ return targetCase_ == 2;
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return The resource.
+ */
+ @java.lang.Override
+ public java.lang.String getResource() {
+ java.lang.Object ref = "";
+ if (targetCase_ == 2) {
+ ref = target_;
+ }
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ if (targetCase_ == 2) {
+ target_ = s;
+ }
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return The bytes for resource.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getResourceBytes() {
+ java.lang.Object ref = "";
+ if (targetCase_ == 2) {
+ ref = target_;
+ }
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ if (targetCase_ == 2) {
+ target_ = b;
+ }
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @param value The resource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setResource(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ targetCase_ = 2;
+ target_ = value;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearResource() {
+ if (targetCase_ == 2) {
+ targetCase_ = 0;
+ target_ = null;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Immutable. The full resource name that's used for access policy
+ * bindings.
+ *
+ * Examples:
+ *
+ * * Organization:
+ * `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ * * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ * * Project:
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ * * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ *
+ *
+ * string resource = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ *
+ * @param value The bytes for resource to set.
+ * @return This builder for chaining.
+ */
+ public Builder setResourceBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ targetCase_ = 2;
+ target_ = value;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.iam.v3beta.PolicyBinding.Target)
}
@@ -1612,8 +2048,8 @@ public java.lang.String getAnnotationsOrThrow(java.lang.String key) {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -1631,8 +2067,8 @@ public boolean hasTarget() {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -1652,8 +2088,8 @@ public com.google.iam.v3beta.PolicyBinding.Target getTarget() {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -1864,13 +2300,14 @@ public com.google.protobuf.ByteString getPolicyUidBytes() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -1915,13 +2352,14 @@ public boolean hasCondition() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -1966,13 +2404,14 @@ public com.google.type.Expr getCondition() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -3465,8 +3904,8 @@ public Builder putAllAnnotations(java.util.Map
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3483,8 +3922,8 @@ public boolean hasTarget() {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3507,8 +3946,8 @@ public com.google.iam.v3beta.PolicyBinding.Target getTarget() {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3533,8 +3972,8 @@ public Builder setTarget(com.google.iam.v3beta.PolicyBinding.Target value) {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3556,8 +3995,8 @@ public Builder setTarget(com.google.iam.v3beta.PolicyBinding.Target.Builder buil
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3587,8 +4026,8 @@ public Builder mergeTarget(com.google.iam.v3beta.PolicyBinding.Target value) {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3610,8 +4049,8 @@ public Builder clearTarget() {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3628,8 +4067,8 @@ public com.google.iam.v3beta.PolicyBinding.Target.Builder getTargetBuilder() {
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -3650,8 +4089,8 @@ public com.google.iam.v3beta.PolicyBinding.TargetOrBuilder getTargetOrBuilder()
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -4075,13 +4514,14 @@ public Builder setPolicyUidBytes(com.google.protobuf.ByteString value) {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4125,13 +4565,14 @@ public boolean hasCondition() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4179,13 +4620,14 @@ public com.google.type.Expr getCondition() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4237,13 +4679,14 @@ public Builder setCondition(com.google.type.Expr value) {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4292,13 +4735,14 @@ public Builder setCondition(com.google.type.Expr.Builder builderForValue) {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4355,13 +4799,14 @@ public Builder mergeCondition(com.google.type.Expr value) {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4410,13 +4855,14 @@ public Builder clearCondition() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4460,13 +4906,14 @@ public com.google.type.Expr.Builder getConditionBuilder() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -4512,13 +4959,14 @@ public com.google.type.ExprOrBuilder getConditionOrBuilder() {
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingOrBuilder.java
index 2030cb635c..21cfa07ad4 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingOrBuilder.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingOrBuilder.java
@@ -242,8 +242,8 @@ java.lang.String getAnnotationsOrDefault(
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -258,8 +258,8 @@ java.lang.String getAnnotationsOrDefault(
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -274,8 +274,8 @@ java.lang.String getAnnotationsOrDefault(
*
*
*
- * Required. Immutable. Target is the full resource name of the resource to
- * which the policy will be bound. Immutable once set.
+ * Required. Immutable. The full resource name of the resource to which the
+ * policy will be bound. Immutable once set.
*
*
*
@@ -413,13 +413,14 @@ java.lang.String getAnnotationsOrDefault(
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -461,13 +462,14 @@ java.lang.String getAnnotationsOrDefault(
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
@@ -509,13 +511,14 @@ java.lang.String getAnnotationsOrDefault(
* - `principal.type != <principal type string>`
* - `principal.type in [<list of principal types>]`
*
- * Supported principal types are Workspace, Workforce Pool, Workload Pool and
- * Service Account. Allowed string must be one of:
+ * Supported principal types are workspace, workforce pool, workload pool,
+ * service account, and Agent Identity. Allowed string must be one of:
*
- * - iam.googleapis.com/WorkspaceIdentity
- * - iam.googleapis.com/WorkforcePoolIdentity
- * - iam.googleapis.com/WorkloadPoolIdentity
- * - iam.googleapis.com/ServiceAccount
+ * - `iam.googleapis.com/WorkspaceIdentity`
+ * - `iam.googleapis.com/WorkforcePoolIdentity`
+ * - `iam.googleapis.com/WorkloadPoolIdentity`
+ * - `iam.googleapis.com/ServiceAccount`
+ * - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
*
*
* .google.type.Expr condition = 8 [(.google.api.field_behavior) = OPTIONAL];
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingResourcesProto.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingResourcesProto.java
index a103e75d10..d1dfd0b27a 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingResourcesProto.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingResourcesProto.java
@@ -66,7 +66,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "rces.proto\022\021google.iam.v3beta\032\037google/ap"
+ "i/field_behavior.proto\032\033google/api/field"
+ "_info.proto\032\031google/api/resource.proto\032\037"
- + "google/protobuf/timestamp.proto\032\026google/type/expr.proto\"\342\007\n\r"
+ + "google/protobuf/timestamp.proto\032\026google/type/expr.proto\"\207\010\n\r"
+ "PolicyBinding\022\021\n"
+ "\004name\030\001 \001(\tB\003\340A\010\022\030\n"
+ "\003uid\030\002 \001(\tB\013\340A\003\342\214\317\327\010\002\010\001\022\021\n"
@@ -83,24 +83,26 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\tcondition\030\010 \001(\0132\021.google.type.ExprB\003\340A\001\0224\n"
+ "\013create_time\030\t \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0224\n"
+ "\013update_time\030\n"
- + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0320\n"
+ + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\032I\n"
+ "\006Target\022\034\n\r"
- + "principal_set\030\001 \001(\tB\003\340A\005H\000B\010\n"
+ + "principal_set\030\001 \001(\tB\003\340A\005H\000\022\027\n"
+ + "\010resource\030\002 \001(\tB\003\340A\005H\000B\010\n"
+ "\006target\0322\n"
+ "\020AnnotationsEntry\022\013\n"
+ "\003key\030\001 \001(\t\022\r\n"
- + "\005value\030\002 \001(\t:\0028\001\"H\n\n"
+ + "\005value\030\002 \001(\t:\0028\001\"T\n\n"
+ "PolicyKind\022\033\n"
+ "\027POLICY_KIND_UNSPECIFIED\020\000\022\035\n"
- + "\031PRINCIPAL_ACCESS_BOUNDARY\020\001:\250\002\352A\244\002\n"
- + " iam.googleapis.com/PolicyBinding\022Qorganizations/{organization}/locations/{loca"
- + "tion}/policyBindings/{policy_binding}\022Efolders/{folder}/locations/{location}/pol"
- + "icyBindings/{policy_binding}\022Gprojects/{"
- + "project}/locations/{location}/policyBindings/{policy_binding}*\016policyBindings2\r"
+ + "\031PRINCIPAL_ACCESS_BOUNDARY\020\001\022\n\n"
+ + "\006ACCESS\020\002:\250\002\352A\244\002\n"
+ + " iam.googleapis.com/PolicyBinding\022Qorganizations/{organization}/locations/{locatio"
+ + "n}/policyBindings/{policy_binding}\022Efolders/{folder}/locations/{location}/policy"
+ + "Bindings/{policy_binding}\022Gprojects/{pro"
+ + "ject}/locations/{location}/policyBindings/{policy_binding}*\016policyBindings2\r"
+ "policyBindingB\231\001\n"
- + "\025com.google.iam.v3betaB\033PolicyBindingResourcesProtoP\001Z-cloud.goo"
- + "gle.com/go/iam/apiv3beta/iampb;iampb\252\002\027G"
- + "oogle.Cloud.Iam.V3Beta\312\002\027Google\\Cloud\\Iam\\V3betab\006proto3"
+ + "\025com.google.iam.v3betaB\033PolicyBindingResourcesProtoP\001Z-cloud.google"
+ + ".com/go/iam/apiv3beta/iampb;iampb\252\002\027Goog"
+ + "le.Cloud.Iam.V3Beta\312\002\027Google\\Cloud\\Iam\\V3betab\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -136,7 +138,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_iam_v3beta_PolicyBinding_Target_descriptor,
new java.lang.String[] {
- "PrincipalSet", "Target",
+ "PrincipalSet", "Resource", "Target",
});
internal_static_google_iam_v3beta_PolicyBinding_AnnotationsEntry_descriptor =
internal_static_google_iam_v3beta_PolicyBinding_descriptor.getNestedType(1);
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsServiceProto.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsServiceProto.java
index 51de0ef394..798a0b11cb 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsServiceProto.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/PolicyBindingsServiceProto.java
@@ -119,66 +119,66 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\006filter\030\004 \001(\tB\003\340A\001\"u\n"
+ "\032ListPolicyBindingsResponse\0229\n"
+ "\017policy_bindings\030\001 \003(\0132 .google.iam.v3beta.PolicyBinding\022\034\n"
- + "\017next_page_token\030\002 \001(\tB\003\340A\001\"\243\001\n"
+ + "\017next_page_token\030\002 \001(\tB\003\340A\001\"\270\001\n"
+ "!SearchTargetPolicyBindingsRequest\022\023\n"
+ "\006target\030\001 \001(\tB\003\340A\002\022\026\n"
+ "\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\n"
+ "page_token\030\003 \001(\tB\003\340A\001\0228\n"
- + "\006parent\030\005 \001(\tB(\340A\002\372A\"\022 iam.googleapis.com/PolicyBinding\"}\n"
+ + "\006parent\030\005 \001(\tB(\340A\002\372A\"\022"
+ + " iam.googleapis.com/PolicyBinding\022\023\n"
+ + "\006filter\030\006 \001(\tB\003\340A\001\"}\n"
+ "\"SearchTargetPolicyBindingsResponse\0229\n"
+ "\017policy_bindings\030\001 \003(\0132 .google.iam.v3beta.PolicyBinding\022\034\n"
+ "\017next_page_token\030\002 \001(\tB\003\340A\0012\214\022\n"
+ "\016PolicyBindings\022\234\003\n"
- + "\023CreatePolicyBinding\022-.go"
- + "ogle.iam.v3beta.CreatePolicyBindingRequest\032\035.google.longrunning.Operation\"\266\002\312A\"\n"
- + "\r"
- + "PolicyBinding\022\021OperationMetadata\332A\'pare"
- + "nt,policy_binding,policy_binding_id\202\323\344\223\002"
- + "\340\001\"6/v3beta/{parent=projects/*/locations"
- + "/*}/policyBindings:\016policy_bindingZG\"5/v3beta/{parent=folders/*/locations/*}/pol"
- + "icyBindings:\016policy_bindingZM\";/v3beta/{"
- + "parent=organizations/*/locations/*}/policyBindings:\016policy_binding\022\241\002\n"
- + "\020GetPolicyBinding\022*.google.iam.v3beta.GetPolicyBindingRequest\032"
- + " .google.iam.v3beta.PolicyBi"
- + "nding\"\276\001\332A\004name\202\323\344\223\002\260\001\0226/v3beta/{name=pr"
- + "ojects/*/locations/*/policyBindings/*}Z7\0225/v3beta/{name=folders/*/locations/*/po"
- + "licyBindings/*}Z=\022;/v3beta/{name=organiz"
- + "ations/*/locations/*/policyBindings/*}\022\274\003\n"
- + "\023UpdatePolicyBinding\022-.google.iam.v3be"
- + "ta.UpdatePolicyBindingRequest\032\035.google.longrunning.Operation\"\326\002\312A\"\n\r"
- + "PolicyBinding\022\021OperationMetadata\332A\032policy_binding,up"
- + "date_mask\202\323\344\223\002\215\0022E/v3beta/{policy_bindin"
- + "g.name=projects/*/locations/*/policyBindings/*}:\016policy_bindingZV2D/v3beta/{poli"
- + "cy_binding.name=folders/*/locations/*/policyBindings/*}:\016policy_bindingZ\\2J/v3be"
- + "ta/{policy_binding.name=organizations/*/"
- + "locations/*/policyBindings/*}:\016policy_binding\022\321\002\n"
- + "\023DeletePolicyBinding\022-.google.i"
- + "am.v3beta.DeletePolicyBindingRequest\032\035.google.longrunning.Operation\"\353\001\312A*\n"
- + "\025google.protobuf.Empty\022\021OperationMetadata\332A\004na"
- + "me\202\323\344\223\002\260\001*6/v3beta/{name=projects/*/loca"
- + "tions/*/policyBindings/*}Z7*5/v3beta/{name=folders/*/locations/*/policyBindings/"
- + "*}Z=*;/v3beta/{name=organizations/*/locations/*/policyBindings/*}\022\264\002\n"
- + "\022ListPolicyBindings\022,.google.iam.v3beta.ListPolicyB"
- + "indingsRequest\032-.google.iam.v3beta.ListP"
- + "olicyBindingsResponse\"\300\001\332A\006parent\202\323\344\223\002\260\001"
- + "\0226/v3beta/{parent=projects/*/locations/*}/policyBindingsZ7\0225/v3beta/{parent=fold"
- + "ers/*/locations/*}/policyBindingsZ=\022;/v3"
- + "beta/{parent=organizations/*/locations/*}/policyBindings\022\244\003\n"
- + "\032SearchTargetPolicyBindings\0224.google.iam.v3beta.SearchTarget"
- + "PolicyBindingsRequest\0325.google.iam.v3bet"
- + "a.SearchTargetPolicyBindingsResponse\"\230\002\332A\r"
- + "parent,target\202\323\344\223\002\201\002\022Q/v3beta/{parent="
- + "projects/*/locations/*}/policyBindings:searchTargetPolicyBindingsZR\022P/v3beta/{pa"
- + "rent=folders/*/locations/*}/policyBindings:searchTargetPolicyBindingsZX\022V/v3beta"
- + "/{parent=organizations/*/locations/*}/policyBindings:searchTargetPolicyBindings\032"
- + "F\312A\022iam.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platformB\304\002\n"
- + "\025com.google.iam.v3betaB\032PolicyBindingsService"
- + "ProtoP\001Z-cloud.google.com/go/iam/apiv3be"
- + "ta/iampb;iampb\252\002\027Google.Cloud.Iam.V3Beta\312\002\027Google\\Cloud\\Iam\\V3beta\352A\\\n"
- + "\'iam.googleapis.com/OrganizationLocation\0221organiza"
- + "tions/{organization}/locations/{location}\352AJ\n"
- + "!iam.googleapis.com/FolderLocation\022%folders/{folder}/locations/{location}b\006"
- + "proto3"
+ + "\023CreatePolicyBinding\022-.google.iam.v3beta.Cre"
+ + "atePolicyBindingRequest\032\035.google.longrunning.Operation\"\266\002\312A\"\n\r"
+ + "PolicyBinding\022\021OperationMetadata\332A\'parent,policy_binding,p"
+ + "olicy_binding_id\202\323\344\223\002\340\001\"6/v3beta/{parent"
+ + "=projects/*/locations/*}/policyBindings:\016policy_bindingZG\"5/v3beta/{parent=folde"
+ + "rs/*/locations/*}/policyBindings:\016policy_bindingZM\";/v3beta/{parent=organization"
+ + "s/*/locations/*}/policyBindings:\016policy_binding\022\241\002\n"
+ + "\020GetPolicyBinding\022*.google.iam.v3beta.GetPolicyBindingRequest\032 .googl"
+ + "e.iam.v3beta.PolicyBinding\"\276\001\332A\004name\202\323\344\223"
+ + "\002\260\001\0226/v3beta/{name=projects/*/locations/"
+ + "*/policyBindings/*}Z7\0225/v3beta/{name=folders/*/locations/*/policyBindings/*}Z=\022;"
+ + "/v3beta/{name=organizations/*/locations/*/policyBindings/*}\022\274\003\n"
+ + "\023UpdatePolicyBinding\022-.google.iam.v3beta.UpdatePolicyBind"
+ + "ingRequest\032\035.google.longrunning.Operation\"\326\002\312A\"\n\r"
+ + "PolicyBinding\022\021OperationMetadat"
+ + "a\332A\032policy_binding,update_mask\202\323\344\223\002\215\0022E/"
+ + "v3beta/{policy_binding.name=projects/*/locations/*/policyBindings/*}:\016policy_bin"
+ + "dingZV2D/v3beta/{policy_binding.name=folders/*/locations/*/policyBindings/*}:\016po"
+ + "licy_bindingZ\\2J/v3beta/{policy_binding."
+ + "name=organizations/*/locations/*/policyBindings/*}:\016policy_binding\022\321\002\n"
+ + "\023DeletePolicyBinding\022-.google.iam.v3beta.DeletePol"
+ + "icyBindingRequest\032\035.google.longrunning.Operation\"\353\001\312A*\n"
+ + "\025google.protobuf.Empty\022\021O"
+ + "perationMetadata\332A\004name\202\323\344\223\002\260\001*6/v3beta/"
+ + "{name=projects/*/locations/*/policyBindings/*}Z7*5/v3beta/{name=folders/*/locati"
+ + "ons/*/policyBindings/*}Z=*;/v3beta/{name"
+ + "=organizations/*/locations/*/policyBindings/*}\022\264\002\n"
+ + "\022ListPolicyBindings\022,.google.iam.v3beta.ListPolicyBindingsRequest\032-.go"
+ + "ogle.iam.v3beta.ListPolicyBindingsRespon"
+ + "se\"\300\001\332A\006parent\202\323\344\223\002\260\001\0226/v3beta/{parent=p"
+ + "rojects/*/locations/*}/policyBindingsZ7\0225/v3beta/{parent=folders/*/locations/*}/"
+ + "policyBindingsZ=\022;/v3beta/{parent=organi"
+ + "zations/*/locations/*}/policyBindings\022\244\003\n"
+ + "\032SearchTargetPolicyBindings\0224.google.iam.v3beta.SearchTargetPolicyBindingsReque"
+ + "st\0325.google.iam.v3beta.SearchTargetPolicyBindingsResponse\"\230\002\332A\r"
+ + "parent,target\202\323\344\223\002\201\002\022Q/v3beta/{parent=projects/*/location"
+ + "s/*}/policyBindings:searchTargetPolicyBindingsZR\022P/v3beta/{parent=folders/*/loca"
+ + "tions/*}/policyBindings:searchTargetPolicyBindingsZX\022V/v3beta/{parent=organizati"
+ + "ons/*/locations/*}/policyBindings:search"
+ + "TargetPolicyBindings\032F\312A\022iam.googleapis."
+ + "com\322A.https://www.googleapis.com/auth/cloud-platformB\304\002\n"
+ + "\025com.google.iam.v3betaB\032PolicyBindingsServiceProtoP\001Z-cloud.goog"
+ + "le.com/go/iam/apiv3beta/iampb;iampb\252\002\027Go"
+ + "ogle.Cloud.Iam.V3Beta\312\002\027Google\\Cloud\\Iam\\V3beta\352A\\\n"
+ + "\'iam.googleapis.com/Organizat"
+ + "ionLocation\0221organizations/{organization}/locations/{location}\352AJ\n"
+ + "!iam.googleapis.com/FolderLocation\022%folders/{folder}/l"
+ + "ocations/{location}b\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -248,7 +248,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_iam_v3beta_SearchTargetPolicyBindingsRequest_descriptor,
new java.lang.String[] {
- "Target", "PageSize", "PageToken", "Parent",
+ "Target", "PageSize", "PageToken", "Parent", "Filter",
});
internal_static_google_iam_v3beta_SearchTargetPolicyBindingsResponse_descriptor =
getDescriptor().getMessageType(7);
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsRequest.java
new file mode 100644
index 0000000000..ba5719af5f
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsRequest.java
@@ -0,0 +1,991 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Request message for SearchAccessPolicyBindings rpc.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.SearchAccessPolicyBindingsRequest}
+ */
+@com.google.protobuf.Generated
+public final class SearchAccessPolicyBindingsRequest extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.SearchAccessPolicyBindingsRequest)
+ SearchAccessPolicyBindingsRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "SearchAccessPolicyBindingsRequest");
+ }
+
+ // Use SearchAccessPolicyBindingsRequest.newBuilder() to construct.
+ private SearchAccessPolicyBindingsRequest(
+ com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private SearchAccessPolicyBindingsRequest() {
+ name_ = "";
+ pageToken_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.class,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.Builder.class);
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PAGE_SIZE_FIELD_NUMBER = 2;
+ private int pageSize_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of policy bindings to return. The service may
+ * return fewer than this value.
+ *
+ * If unspecified, at most 50 policy bindings will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ @java.lang.Override
+ public int getPageSize() {
+ return pageSize_;
+ }
+
+ public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object pageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ @java.lang.Override
+ public java.lang.String getPageToken() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ pageToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getPageTokenBytes() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ pageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, name_);
+ }
+ if (pageSize_ != 0) {
+ output.writeInt32(2, pageSize_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, pageToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
+ }
+ if (pageSize_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, pageSize_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pageToken_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, pageToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.iam.v3beta.SearchAccessPolicyBindingsRequest)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest other =
+ (com.google.iam.v3beta.SearchAccessPolicyBindingsRequest) obj;
+
+ if (!getName().equals(other.getName())) return false;
+ if (getPageSize() != other.getPageSize()) return false;
+ if (!getPageToken().equals(other.getPageToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
+ hash = (53 * hash) + getPageSize();
+ hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getPageToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest 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.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.SearchAccessPolicyBindingsRequest 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Request message for SearchAccessPolicyBindings rpc.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.SearchAccessPolicyBindingsRequest}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.SearchAccessPolicyBindingsRequest)
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.class,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ name_ = "";
+ pageSize_ = 0;
+ pageToken_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsRequest getDefaultInstanceForType() {
+ return com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsRequest build() {
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsRequest buildPartial() {
+ com.google.iam.v3beta.SearchAccessPolicyBindingsRequest result =
+ new com.google.iam.v3beta.SearchAccessPolicyBindingsRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.SearchAccessPolicyBindingsRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.name_ = name_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.pageSize_ = pageSize_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.pageToken_ = pageToken_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.SearchAccessPolicyBindingsRequest) {
+ return mergeFrom((com.google.iam.v3beta.SearchAccessPolicyBindingsRequest) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.SearchAccessPolicyBindingsRequest other) {
+ if (other == com.google.iam.v3beta.SearchAccessPolicyBindingsRequest.getDefaultInstance())
+ return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (other.getPageSize() != 0) {
+ setPageSize(other.getPageSize());
+ }
+ if (!other.getPageToken().isEmpty()) {
+ pageToken_ = other.pageToken_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ name_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 16:
+ {
+ pageSize_ = input.readInt32();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ case 26:
+ {
+ pageToken_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+ name_ = getDefaultInstance().getName();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private int pageSize_;
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of policy bindings to return. The service may
+ * return fewer than this value.
+ *
+ * If unspecified, at most 50 policy bindings will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ @java.lang.Override
+ public int getPageSize() {
+ return pageSize_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of policy bindings to return. The service may
+ * return fewer than this value.
+ *
+ * If unspecified, at most 50 policy bindings will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The pageSize to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageSize(int value) {
+
+ pageSize_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of policy bindings to return. The service may
+ * return fewer than this value.
+ *
+ * If unspecified, at most 50 policy bindings will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageSize() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ pageSize_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object pageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ public java.lang.String getPageToken() {
+ java.lang.Object ref = pageToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ pageToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ public com.google.protobuf.ByteString getPageTokenBytes() {
+ java.lang.Object ref = pageToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ pageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The pageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ pageToken_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPageToken() {
+ pageToken_ = getDefaultInstance().getPageToken();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for pageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ pageToken_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.SearchAccessPolicyBindingsRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.SearchAccessPolicyBindingsRequest)
+ private static final com.google.iam.v3beta.SearchAccessPolicyBindingsRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.SearchAccessPolicyBindingsRequest();
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public SearchAccessPolicyBindingsRequest 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.iam.v3beta.SearchAccessPolicyBindingsRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsRequestOrBuilder.java
new file mode 100644
index 0000000000..33964c6274
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsRequestOrBuilder.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface SearchAccessPolicyBindingsRequestOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.SearchAccessPolicyBindingsRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The name.
+ */
+ java.lang.String getName();
+
+ /**
+ *
+ *
+ *
+ * Required. The name of the access policy.
+ * Format:
+ * `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ * `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ *
+ *
+ *
+ * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
+ *
+ *
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString getNameBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. The maximum number of policy bindings to return. The service may
+ * return fewer than this value.
+ *
+ * If unspecified, at most 50 policy bindings will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ *
+ * int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageSize.
+ */
+ int getPageSize();
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The pageToken.
+ */
+ java.lang.String getPageToken();
+
+ /**
+ *
+ *
+ *
+ * Optional. A page token, received from a previous
+ * `SearchAccessPolicyBindingsRequest` call. Provide this to
+ * retrieve the subsequent page.
+ *
+ * When paginating, all other parameters provided to
+ * `SearchAccessPolicyBindingsRequest` must match the call
+ * that provided the page token.
+ *
+ *
+ * string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for pageToken.
+ */
+ com.google.protobuf.ByteString getPageTokenBytes();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsResponse.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsResponse.java
new file mode 100644
index 0000000000..381a0c3890
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsResponse.java
@@ -0,0 +1,1124 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Response message for SearchAccessPolicyBindings rpc.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.SearchAccessPolicyBindingsResponse}
+ */
+@com.google.protobuf.Generated
+public final class SearchAccessPolicyBindingsResponse extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.SearchAccessPolicyBindingsResponse)
+ SearchAccessPolicyBindingsResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "SearchAccessPolicyBindingsResponse");
+ }
+
+ // Use SearchAccessPolicyBindingsResponse.newBuilder() to construct.
+ private SearchAccessPolicyBindingsResponse(
+ com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private SearchAccessPolicyBindingsResponse() {
+ policyBindings_ = java.util.Collections.emptyList();
+ nextPageToken_ = "";
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.class,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.Builder.class);
+ }
+
+ public static final int POLICY_BINDINGS_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private java.util.List policyBindings_;
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ @java.lang.Override
+ public java.util.List getPolicyBindingsList() {
+ return policyBindings_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ @java.lang.Override
+ public java.util.List extends com.google.iam.v3beta.PolicyBindingOrBuilder>
+ getPolicyBindingsOrBuilderList() {
+ return policyBindings_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ @java.lang.Override
+ public int getPolicyBindingsCount() {
+ return policyBindings_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.PolicyBinding getPolicyBindings(int index) {
+ return policyBindings_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.PolicyBindingOrBuilder getPolicyBindingsOrBuilder(int index) {
+ return policyBindings_.get(index);
+ }
+
+ public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object nextPageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The nextPageToken.
+ */
+ @java.lang.Override
+ public java.lang.String getNextPageToken() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ nextPageToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for nextPageToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNextPageTokenBytes() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ nextPageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < policyBindings_.size(); i++) {
+ output.writeMessage(1, policyBindings_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, nextPageToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < policyBindings_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, policyBindings_.get(i));
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nextPageToken_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, nextPageToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.iam.v3beta.SearchAccessPolicyBindingsResponse)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse other =
+ (com.google.iam.v3beta.SearchAccessPolicyBindingsResponse) obj;
+
+ if (!getPolicyBindingsList().equals(other.getPolicyBindingsList())) return false;
+ if (!getNextPageToken().equals(other.getNextPageToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getPolicyBindingsCount() > 0) {
+ hash = (37 * hash) + POLICY_BINDINGS_FIELD_NUMBER;
+ hash = (53 * hash) + getPolicyBindingsList().hashCode();
+ }
+ hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getNextPageToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse 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.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.SearchAccessPolicyBindingsResponse 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Response message for SearchAccessPolicyBindings rpc.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.SearchAccessPolicyBindingsResponse}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.SearchAccessPolicyBindingsResponse)
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.class,
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ if (policyBindingsBuilder_ == null) {
+ policyBindings_ = java.util.Collections.emptyList();
+ } else {
+ policyBindings_ = null;
+ policyBindingsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ nextPageToken_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_SearchAccessPolicyBindingsResponse_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsResponse getDefaultInstanceForType() {
+ return com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsResponse build() {
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.SearchAccessPolicyBindingsResponse buildPartial() {
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse result =
+ new com.google.iam.v3beta.SearchAccessPolicyBindingsResponse(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(
+ com.google.iam.v3beta.SearchAccessPolicyBindingsResponse result) {
+ if (policyBindingsBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ policyBindings_ = java.util.Collections.unmodifiableList(policyBindings_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.policyBindings_ = policyBindings_;
+ } else {
+ result.policyBindings_ = policyBindingsBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.SearchAccessPolicyBindingsResponse result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.nextPageToken_ = nextPageToken_;
+ }
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.SearchAccessPolicyBindingsResponse) {
+ return mergeFrom((com.google.iam.v3beta.SearchAccessPolicyBindingsResponse) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.SearchAccessPolicyBindingsResponse other) {
+ if (other == com.google.iam.v3beta.SearchAccessPolicyBindingsResponse.getDefaultInstance())
+ return this;
+ if (policyBindingsBuilder_ == null) {
+ if (!other.policyBindings_.isEmpty()) {
+ if (policyBindings_.isEmpty()) {
+ policyBindings_ = other.policyBindings_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.addAll(other.policyBindings_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.policyBindings_.isEmpty()) {
+ if (policyBindingsBuilder_.isEmpty()) {
+ policyBindingsBuilder_.dispose();
+ policyBindingsBuilder_ = null;
+ policyBindings_ = other.policyBindings_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ policyBindingsBuilder_ =
+ com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
+ ? internalGetPolicyBindingsFieldBuilder()
+ : null;
+ } else {
+ policyBindingsBuilder_.addAllMessages(other.policyBindings_);
+ }
+ }
+ }
+ if (!other.getNextPageToken().isEmpty()) {
+ nextPageToken_ = other.nextPageToken_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ com.google.iam.v3beta.PolicyBinding m =
+ input.readMessage(
+ com.google.iam.v3beta.PolicyBinding.parser(), extensionRegistry);
+ if (policyBindingsBuilder_ == null) {
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.add(m);
+ } else {
+ policyBindingsBuilder_.addMessage(m);
+ }
+ break;
+ } // case 10
+ case 18:
+ {
+ nextPageToken_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.util.List policyBindings_ =
+ java.util.Collections.emptyList();
+
+ private void ensurePolicyBindingsIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ policyBindings_ =
+ new java.util.ArrayList(policyBindings_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.PolicyBinding,
+ com.google.iam.v3beta.PolicyBinding.Builder,
+ com.google.iam.v3beta.PolicyBindingOrBuilder>
+ policyBindingsBuilder_;
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public java.util.List getPolicyBindingsList() {
+ if (policyBindingsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(policyBindings_);
+ } else {
+ return policyBindingsBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public int getPolicyBindingsCount() {
+ if (policyBindingsBuilder_ == null) {
+ return policyBindings_.size();
+ } else {
+ return policyBindingsBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public com.google.iam.v3beta.PolicyBinding getPolicyBindings(int index) {
+ if (policyBindingsBuilder_ == null) {
+ return policyBindings_.get(index);
+ } else {
+ return policyBindingsBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder setPolicyBindings(int index, com.google.iam.v3beta.PolicyBinding value) {
+ if (policyBindingsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.set(index, value);
+ onChanged();
+ } else {
+ policyBindingsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder setPolicyBindings(
+ int index, com.google.iam.v3beta.PolicyBinding.Builder builderForValue) {
+ if (policyBindingsBuilder_ == null) {
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ policyBindingsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder addPolicyBindings(com.google.iam.v3beta.PolicyBinding value) {
+ if (policyBindingsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.add(value);
+ onChanged();
+ } else {
+ policyBindingsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder addPolicyBindings(int index, com.google.iam.v3beta.PolicyBinding value) {
+ if (policyBindingsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.add(index, value);
+ onChanged();
+ } else {
+ policyBindingsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder addPolicyBindings(com.google.iam.v3beta.PolicyBinding.Builder builderForValue) {
+ if (policyBindingsBuilder_ == null) {
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.add(builderForValue.build());
+ onChanged();
+ } else {
+ policyBindingsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder addPolicyBindings(
+ int index, com.google.iam.v3beta.PolicyBinding.Builder builderForValue) {
+ if (policyBindingsBuilder_ == null) {
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ policyBindingsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder addAllPolicyBindings(
+ java.lang.Iterable extends com.google.iam.v3beta.PolicyBinding> values) {
+ if (policyBindingsBuilder_ == null) {
+ ensurePolicyBindingsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, policyBindings_);
+ onChanged();
+ } else {
+ policyBindingsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder clearPolicyBindings() {
+ if (policyBindingsBuilder_ == null) {
+ policyBindings_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ policyBindingsBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public Builder removePolicyBindings(int index) {
+ if (policyBindingsBuilder_ == null) {
+ ensurePolicyBindingsIsMutable();
+ policyBindings_.remove(index);
+ onChanged();
+ } else {
+ policyBindingsBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public com.google.iam.v3beta.PolicyBinding.Builder getPolicyBindingsBuilder(int index) {
+ return internalGetPolicyBindingsFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public com.google.iam.v3beta.PolicyBindingOrBuilder getPolicyBindingsOrBuilder(int index) {
+ if (policyBindingsBuilder_ == null) {
+ return policyBindings_.get(index);
+ } else {
+ return policyBindingsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public java.util.List extends com.google.iam.v3beta.PolicyBindingOrBuilder>
+ getPolicyBindingsOrBuilderList() {
+ if (policyBindingsBuilder_ != null) {
+ return policyBindingsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(policyBindings_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public com.google.iam.v3beta.PolicyBinding.Builder addPolicyBindingsBuilder() {
+ return internalGetPolicyBindingsFieldBuilder()
+ .addBuilder(com.google.iam.v3beta.PolicyBinding.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public com.google.iam.v3beta.PolicyBinding.Builder addPolicyBindingsBuilder(int index) {
+ return internalGetPolicyBindingsFieldBuilder()
+ .addBuilder(index, com.google.iam.v3beta.PolicyBinding.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ public java.util.List
+ getPolicyBindingsBuilderList() {
+ return internalGetPolicyBindingsFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.PolicyBinding,
+ com.google.iam.v3beta.PolicyBinding.Builder,
+ com.google.iam.v3beta.PolicyBindingOrBuilder>
+ internalGetPolicyBindingsFieldBuilder() {
+ if (policyBindingsBuilder_ == null) {
+ policyBindingsBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilder<
+ com.google.iam.v3beta.PolicyBinding,
+ com.google.iam.v3beta.PolicyBinding.Builder,
+ com.google.iam.v3beta.PolicyBindingOrBuilder>(
+ policyBindings_,
+ ((bitField0_ & 0x00000001) != 0),
+ getParentForChildren(),
+ isClean());
+ policyBindings_ = null;
+ }
+ return policyBindingsBuilder_;
+ }
+
+ private java.lang.Object nextPageToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The nextPageToken.
+ */
+ public java.lang.String getNextPageToken() {
+ java.lang.Object ref = nextPageToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ nextPageToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for nextPageToken.
+ */
+ public com.google.protobuf.ByteString getNextPageTokenBytes() {
+ java.lang.Object ref = nextPageToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ nextPageToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The nextPageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNextPageToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearNextPageToken() {
+ nextPageToken_ = getDefaultInstance().getNextPageToken();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for nextPageToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.SearchAccessPolicyBindingsResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.SearchAccessPolicyBindingsResponse)
+ private static final com.google.iam.v3beta.SearchAccessPolicyBindingsResponse DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.SearchAccessPolicyBindingsResponse();
+ }
+
+ public static com.google.iam.v3beta.SearchAccessPolicyBindingsResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public SearchAccessPolicyBindingsResponse 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.iam.v3beta.SearchAccessPolicyBindingsResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsResponseOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsResponseOrBuilder.java
new file mode 100644
index 0000000000..a6a045f301
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchAccessPolicyBindingsResponseOrBuilder.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface SearchAccessPolicyBindingsResponseOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.SearchAccessPolicyBindingsResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ java.util.List getPolicyBindingsList();
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ com.google.iam.v3beta.PolicyBinding getPolicyBindings(int index);
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ int getPolicyBindingsCount();
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ java.util.List extends com.google.iam.v3beta.PolicyBindingOrBuilder>
+ getPolicyBindingsOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * The policy bindings that reference the specified policy.
+ *
+ *
+ * repeated .google.iam.v3beta.PolicyBinding policy_bindings = 1;
+ */
+ com.google.iam.v3beta.PolicyBindingOrBuilder getPolicyBindingsOrBuilder(int index);
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The nextPageToken.
+ */
+ java.lang.String getNextPageToken();
+
+ /**
+ *
+ *
+ *
+ * Optional. A token, which can be sent as `page_token` to retrieve the next
+ * page. If this field is omitted, there are no subsequent pages.
+ *
+ *
+ * string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for nextPageToken.
+ */
+ com.google.protobuf.ByteString getNextPageTokenBytes();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequest.java
index c520c8c5e9..c18c604b4e 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequest.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequest.java
@@ -56,6 +56,7 @@ private SearchTargetPolicyBindingsRequest() {
target_ = "";
pageToken_ = "";
parent_ = "";
+ filter_ = "";
}
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
@@ -154,8 +155,7 @@ public com.google.protobuf.ByteString getTargetBytes() {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -307,6 +307,77 @@ public com.google.protobuf.ByteString getParentBytes() {
}
}
+ public static final int FILTER_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object filter_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The filter.
+ */
+ @java.lang.Override
+ public java.lang.String getFilter() {
+ java.lang.Object ref = filter_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ filter_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for filter.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getFilterBytes() {
+ java.lang.Object ref = filter_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ filter_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -333,6 +404,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) {
com.google.protobuf.GeneratedMessage.writeString(output, 5, parent_);
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(filter_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 6, filter_);
+ }
getUnknownFields().writeTo(output);
}
@@ -354,6 +428,9 @@ public int getSerializedSize() {
if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) {
size += com.google.protobuf.GeneratedMessage.computeStringSize(5, parent_);
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(filter_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(6, filter_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -374,6 +451,7 @@ public boolean equals(final java.lang.Object obj) {
if (getPageSize() != other.getPageSize()) return false;
if (!getPageToken().equals(other.getPageToken())) return false;
if (!getParent().equals(other.getParent())) return false;
+ if (!getFilter().equals(other.getFilter())) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -393,6 +471,8 @@ public int hashCode() {
hash = (53 * hash) + getPageToken().hashCode();
hash = (37 * hash) + PARENT_FIELD_NUMBER;
hash = (53 * hash) + getParent().hashCode();
+ hash = (37 * hash) + FILTER_FIELD_NUMBER;
+ hash = (53 * hash) + getFilter().hashCode();
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -538,6 +618,7 @@ public Builder clear() {
pageSize_ = 0;
pageToken_ = "";
parent_ = "";
+ filter_ = "";
return this;
}
@@ -586,6 +667,9 @@ private void buildPartial0(com.google.iam.v3beta.SearchTargetPolicyBindingsReque
if (((from_bitField0_ & 0x00000008) != 0)) {
result.parent_ = parent_;
}
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.filter_ = filter_;
+ }
}
@java.lang.Override
@@ -619,6 +703,11 @@ public Builder mergeFrom(com.google.iam.v3beta.SearchTargetPolicyBindingsRequest
bitField0_ |= 0x00000008;
onChanged();
}
+ if (!other.getFilter().isEmpty()) {
+ filter_ = other.filter_;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -669,6 +758,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000008;
break;
} // case 42
+ case 50:
+ {
+ filter_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 50
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -853,8 +948,7 @@ public Builder setTargetBytes(com.google.protobuf.ByteString value) {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -873,8 +967,7 @@ public int getPageSize() {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -897,8 +990,7 @@ public Builder setPageSize(int value) {
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -1219,6 +1311,162 @@ public Builder setParentBytes(com.google.protobuf.ByteString value) {
return this;
}
+ private java.lang.Object filter_ = "";
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The filter.
+ */
+ public java.lang.String getFilter() {
+ java.lang.Object ref = filter_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ filter_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for filter.
+ */
+ public com.google.protobuf.ByteString getFilterBytes() {
+ java.lang.Object ref = filter_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ filter_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The filter to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFilter(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ filter_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearFilter() {
+ filter_ = getDefaultInstance().getFilter();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The bytes for filter to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFilterBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ filter_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.iam.v3beta.SearchTargetPolicyBindingsRequest)
}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequestOrBuilder.java
index 94b017218e..7761e685e8 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequestOrBuilder.java
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/SearchTargetPolicyBindingsRequestOrBuilder.java
@@ -77,8 +77,7 @@ public interface SearchTargetPolicyBindingsRequestOrBuilder
* Optional. The maximum number of policy bindings to return. The service may
* return fewer than this value.
*
- * If unspecified, at most 50 policy bindings will be returned.
- * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * The default value is 50. The maximum value is 1000.
*
*
* int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
@@ -172,4 +171,48 @@ public interface SearchTargetPolicyBindingsRequestOrBuilder
* @return The bytes for parent.
*/
com.google.protobuf.ByteString getParentBytes();
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The filter.
+ */
+ java.lang.String getFilter();
+
+ /**
+ *
+ *
+ *
+ * Optional. Filtering currently only supports the kind of policies to return,
+ * and must be in the format "policy_kind={policy_kind}".
+ *
+ * If String is empty, bindings bound to all kinds of policies would be
+ * returned.
+ *
+ * The only supported values are the following:
+ *
+ * * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ * * "policy_kind=ACCESS"
+ *
+ *
+ * string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The bytes for filter.
+ */
+ com.google.protobuf.ByteString getFilterBytes();
}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/UpdateAccessPolicyRequest.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/UpdateAccessPolicyRequest.java
new file mode 100644
index 0000000000..9faccac2cf
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/UpdateAccessPolicyRequest.java
@@ -0,0 +1,860 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+/**
+ *
+ *
+ *
+ * Request message for UpdateAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.UpdateAccessPolicyRequest}
+ */
+@com.google.protobuf.Generated
+public final class UpdateAccessPolicyRequest extends com.google.protobuf.GeneratedMessage
+ implements
+ // @@protoc_insertion_point(message_implements:google.iam.v3beta.UpdateAccessPolicyRequest)
+ UpdateAccessPolicyRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ static {
+ com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
+ com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
+ /* major= */ 4,
+ /* minor= */ 33,
+ /* patch= */ 2,
+ /* suffix= */ "",
+ "UpdateAccessPolicyRequest");
+ }
+
+ // Use UpdateAccessPolicyRequest.newBuilder() to construct.
+ private UpdateAccessPolicyRequest(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ }
+
+ private UpdateAccessPolicyRequest() {}
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest.class,
+ com.google.iam.v3beta.UpdateAccessPolicyRequest.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int ACCESS_POLICY_FIELD_NUMBER = 1;
+ private com.google.iam.v3beta.AccessPolicy accessPolicy_;
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the accessPolicy field is set.
+ */
+ @java.lang.Override
+ public boolean hasAccessPolicy() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The accessPolicy.
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicy() {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ @java.lang.Override
+ public com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPolicyOrBuilder() {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ }
+
+ public static final int VALIDATE_ONLY_FIELD_NUMBER = 2;
+ private boolean validateOnly_ = false;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the update, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ @java.lang.Override
+ public boolean getValidateOnly() {
+ return validateOnly_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getAccessPolicy());
+ }
+ if (validateOnly_ != false) {
+ output.writeBool(2, validateOnly_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAccessPolicy());
+ }
+ if (validateOnly_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, validateOnly_);
+ }
+ 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.iam.v3beta.UpdateAccessPolicyRequest)) {
+ return super.equals(obj);
+ }
+ com.google.iam.v3beta.UpdateAccessPolicyRequest other =
+ (com.google.iam.v3beta.UpdateAccessPolicyRequest) obj;
+
+ if (hasAccessPolicy() != other.hasAccessPolicy()) return false;
+ if (hasAccessPolicy()) {
+ if (!getAccessPolicy().equals(other.getAccessPolicy())) return false;
+ }
+ if (getValidateOnly() != other.getValidateOnly()) 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 (hasAccessPolicy()) {
+ hash = (37 * hash) + ACCESS_POLICY_FIELD_NUMBER;
+ hash = (53 * hash) + getAccessPolicy().hashCode();
+ }
+ hash = (37 * hash) + VALIDATE_ONLY_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getValidateOnly());
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest 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.iam.v3beta.UpdateAccessPolicyRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.iam.v3beta.UpdateAccessPolicyRequest 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Request message for UpdateAccessPolicy method.
+ *
+ *
+ * Protobuf type {@code google.iam.v3beta.UpdateAccessPolicyRequest}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.iam.v3beta.UpdateAccessPolicyRequest)
+ com.google.iam.v3beta.UpdateAccessPolicyRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.iam.v3beta.UpdateAccessPolicyRequest.class,
+ com.google.iam.v3beta.UpdateAccessPolicyRequest.Builder.class);
+ }
+
+ // Construct using com.google.iam.v3beta.UpdateAccessPolicyRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ internalGetAccessPolicyFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ accessPolicy_ = null;
+ if (accessPolicyBuilder_ != null) {
+ accessPolicyBuilder_.dispose();
+ accessPolicyBuilder_ = null;
+ }
+ validateOnly_ = false;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.iam.v3beta.AccessPoliciesProto
+ .internal_static_google_iam_v3beta_UpdateAccessPolicyRequest_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.UpdateAccessPolicyRequest getDefaultInstanceForType() {
+ return com.google.iam.v3beta.UpdateAccessPolicyRequest.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.UpdateAccessPolicyRequest build() {
+ com.google.iam.v3beta.UpdateAccessPolicyRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.iam.v3beta.UpdateAccessPolicyRequest buildPartial() {
+ com.google.iam.v3beta.UpdateAccessPolicyRequest result =
+ new com.google.iam.v3beta.UpdateAccessPolicyRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.iam.v3beta.UpdateAccessPolicyRequest result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.accessPolicy_ =
+ accessPolicyBuilder_ == null ? accessPolicy_ : accessPolicyBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.validateOnly_ = validateOnly_;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.iam.v3beta.UpdateAccessPolicyRequest) {
+ return mergeFrom((com.google.iam.v3beta.UpdateAccessPolicyRequest) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.iam.v3beta.UpdateAccessPolicyRequest other) {
+ if (other == com.google.iam.v3beta.UpdateAccessPolicyRequest.getDefaultInstance())
+ return this;
+ if (other.hasAccessPolicy()) {
+ mergeAccessPolicy(other.getAccessPolicy());
+ }
+ if (other.getValidateOnly() != false) {
+ setValidateOnly(other.getValidateOnly());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ input.readMessage(
+ internalGetAccessPolicyFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 16:
+ {
+ validateOnly_ = input.readBool();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.iam.v3beta.AccessPolicy accessPolicy_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>
+ accessPolicyBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the accessPolicy field is set.
+ */
+ public boolean hasAccessPolicy() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The accessPolicy.
+ */
+ public com.google.iam.v3beta.AccessPolicy getAccessPolicy() {
+ if (accessPolicyBuilder_ == null) {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ } else {
+ return accessPolicyBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setAccessPolicy(com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPolicyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ accessPolicy_ = value;
+ } else {
+ accessPolicyBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder setAccessPolicy(com.google.iam.v3beta.AccessPolicy.Builder builderForValue) {
+ if (accessPolicyBuilder_ == null) {
+ accessPolicy_ = builderForValue.build();
+ } else {
+ accessPolicyBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder mergeAccessPolicy(com.google.iam.v3beta.AccessPolicy value) {
+ if (accessPolicyBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && accessPolicy_ != null
+ && accessPolicy_ != com.google.iam.v3beta.AccessPolicy.getDefaultInstance()) {
+ getAccessPolicyBuilder().mergeFrom(value);
+ } else {
+ accessPolicy_ = value;
+ }
+ } else {
+ accessPolicyBuilder_.mergeFrom(value);
+ }
+ if (accessPolicy_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public Builder clearAccessPolicy() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ accessPolicy_ = null;
+ if (accessPolicyBuilder_ != null) {
+ accessPolicyBuilder_.dispose();
+ accessPolicyBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicy.Builder getAccessPolicyBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return internalGetAccessPolicyFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ public com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPolicyOrBuilder() {
+ if (accessPolicyBuilder_ != null) {
+ return accessPolicyBuilder_.getMessageOrBuilder();
+ } else {
+ return accessPolicy_ == null
+ ? com.google.iam.v3beta.AccessPolicy.getDefaultInstance()
+ : accessPolicy_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>
+ internalGetAccessPolicyFieldBuilder() {
+ if (accessPolicyBuilder_ == null) {
+ accessPolicyBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.iam.v3beta.AccessPolicy,
+ com.google.iam.v3beta.AccessPolicy.Builder,
+ com.google.iam.v3beta.AccessPolicyOrBuilder>(
+ getAccessPolicy(), getParentForChildren(), isClean());
+ accessPolicy_ = null;
+ }
+ return accessPolicyBuilder_;
+ }
+
+ private boolean validateOnly_;
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the update, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ @java.lang.Override
+ public boolean getValidateOnly() {
+ return validateOnly_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the update, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The validateOnly to set.
+ * @return This builder for chaining.
+ */
+ public Builder setValidateOnly(boolean value) {
+
+ validateOnly_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the update, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearValidateOnly() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ validateOnly_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.iam.v3beta.UpdateAccessPolicyRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.iam.v3beta.UpdateAccessPolicyRequest)
+ private static final com.google.iam.v3beta.UpdateAccessPolicyRequest DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.iam.v3beta.UpdateAccessPolicyRequest();
+ }
+
+ public static com.google.iam.v3beta.UpdateAccessPolicyRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public UpdateAccessPolicyRequest 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.iam.v3beta.UpdateAccessPolicyRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/UpdateAccessPolicyRequestOrBuilder.java b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/UpdateAccessPolicyRequestOrBuilder.java
new file mode 100644
index 0000000000..a1a7fa2b69
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/java/com/google/iam/v3beta/UpdateAccessPolicyRequestOrBuilder.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/iam/v3beta/access_policies_service.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.iam.v3beta;
+
+@com.google.protobuf.Generated
+public interface UpdateAccessPolicyRequestOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.iam.v3beta.UpdateAccessPolicyRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return Whether the accessPolicy field is set.
+ */
+ boolean hasAccessPolicy();
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ *
+ * @return The accessPolicy.
+ */
+ com.google.iam.v3beta.AccessPolicy getAccessPolicy();
+
+ /**
+ *
+ *
+ *
+ * Required. The access policy to update.
+ *
+ * The access policy's `name` field is used to identify the
+ * policy to update.
+ *
+ *
+ *
+ * .google.iam.v3beta.AccessPolicy access_policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ */
+ com.google.iam.v3beta.AccessPolicyOrBuilder getAccessPolicyOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Optional. If set, validate the request and preview the update, but do not
+ * actually post it.
+ *
+ *
+ * bool validate_only = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The validateOnly.
+ */
+ boolean getValidateOnly();
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/access_policies_service.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/access_policies_service.proto
new file mode 100644
index 0000000000..d7f000a44e
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/access_policies_service.proto
@@ -0,0 +1,329 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.iam.v3beta;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/iam/v3beta/access_policy_resources.proto";
+import "google/iam/v3beta/operation_metadata.proto";
+import "google/iam/v3beta/policy_binding_resources.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+
+option csharp_namespace = "Google.Cloud.Iam.V3Beta";
+option go_package = "cloud.google.com/go/iam/apiv3beta/iampb;iampb";
+option java_multiple_files = true;
+option java_outer_classname = "AccessPoliciesProto";
+option java_package = "com.google.iam.v3beta";
+option php_namespace = "Google\\Cloud\\Iam\\V3beta";
+
+// Manages Identity and Access Management (IAM) access policies.
+service AccessPolicies {
+ option (google.api.default_host) = "iam.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform";
+
+ // Creates an access policy, and returns a long running operation.
+ rpc CreateAccessPolicy(CreateAccessPolicyRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v3beta/{parent=projects/*/locations/*}/accessPolicies"
+ body: "access_policy"
+ additional_bindings {
+ post: "/v3beta/{parent=folders/*/locations/*}/accessPolicies"
+ body: "access_policy"
+ }
+ additional_bindings {
+ post: "/v3beta/{parent=organizations/*/locations/*}/accessPolicies"
+ body: "access_policy"
+ }
+ };
+ option (google.api.method_signature) =
+ "parent,access_policy,access_policy_id";
+ option (google.longrunning.operation_info) = {
+ response_type: "AccessPolicy"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Gets an access policy.
+ rpc GetAccessPolicy(GetAccessPolicyRequest) returns (AccessPolicy) {
+ option (google.api.http) = {
+ get: "/v3beta/{name=projects/*/locations/*/accessPolicies/*}"
+ additional_bindings {
+ get: "/v3beta/{name=folders/*/locations/*/accessPolicies/*}"
+ }
+ additional_bindings {
+ get: "/v3beta/{name=organizations/*/locations/*/accessPolicies/*}"
+ }
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Updates an access policy.
+ rpc UpdateAccessPolicy(UpdateAccessPolicyRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v3beta/{access_policy.name=projects/*/locations/*/accessPolicies/*}"
+ body: "access_policy"
+ additional_bindings {
+ patch: "/v3beta/{access_policy.name=folders/*/locations/*/accessPolicies/*}"
+ body: "access_policy"
+ }
+ additional_bindings {
+ patch: "/v3beta/{access_policy.name=organizations/*/locations/*/accessPolicies/*}"
+ body: "access_policy"
+ }
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "AccessPolicy"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Deletes an access policy.
+ rpc DeleteAccessPolicy(DeleteAccessPolicyRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v3beta/{name=projects/*/locations/*/accessPolicies/*}"
+ additional_bindings {
+ delete: "/v3beta/{name=folders/*/locations/*/accessPolicies/*}"
+ }
+ additional_bindings {
+ delete: "/v3beta/{name=organizations/*/locations/*/accessPolicies/*}"
+ }
+ };
+ option (google.api.method_signature) = "name";
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Lists access policies.
+ rpc ListAccessPolicies(ListAccessPoliciesRequest)
+ returns (ListAccessPoliciesResponse) {
+ option (google.api.http) = {
+ get: "/v3beta/{parent=projects/*/locations/*}/accessPolicies"
+ additional_bindings {
+ get: "/v3beta/{parent=folders/*/locations/*}/accessPolicies"
+ }
+ additional_bindings {
+ get: "/v3beta/{parent=organizations/*/locations/*}/accessPolicies"
+ }
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Returns all policy bindings that bind a specific policy if a user has
+ // searchPolicyBindings permission on that policy.
+ rpc SearchAccessPolicyBindings(SearchAccessPolicyBindingsRequest)
+ returns (SearchAccessPolicyBindingsResponse) {
+ option (google.api.http) = {
+ get: "/v3beta/{name=organizations/*/locations/*/accessPolicies/*}:searchPolicyBindings"
+ additional_bindings {
+ get: "/v3beta/{name=folders/*/locations/*/accessPolicies/*}:searchPolicyBindings"
+ }
+ additional_bindings {
+ get: "/v3beta/{name=projects/*/locations/*/accessPolicies/*}:searchPolicyBindings"
+ }
+ };
+ option (google.api.method_signature) = "name";
+ }
+}
+
+// Request message for CreateAccessPolicy method.
+message CreateAccessPolicyRequest {
+ // Required. The parent resource where this access policy will be created.
+ //
+ // Format:
+ // `projects/{project_id}/locations/{location}`
+ // `projects/{project_number}/locations/{location}`
+ // `folders/{folder_id}/locations/{location}`
+ // `organizations/{organization_id}/locations/{location}`
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "iam.googleapis.com/AccessPolicy"
+ }
+ ];
+
+ // Required. The ID to use for the access policy, which
+ // will become the final component of the access policy's
+ // resource name.
+ //
+ // This value must start with a lowercase letter followed by up to 62
+ // lowercase letters, numbers, hyphens, or dots. Pattern,
+ // /[a-z][a-z0-9-\.]{2,62}/.
+ //
+ // This value must be unique among all access policies with the same parent.
+ string access_policy_id = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The access policy to create.
+ AccessPolicy access_policy = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. If set, validate the request and preview the creation, but do not
+ // actually post it.
+ bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for GetAccessPolicy method.
+message GetAccessPolicyRequest {
+ // Required. The name of the access policy to retrieve.
+ //
+ // Format:
+ // `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "iam.googleapis.com/AccessPolicy"
+ }
+ ];
+}
+
+// Request message for UpdateAccessPolicy method.
+message UpdateAccessPolicyRequest {
+ // Required. The access policy to update.
+ //
+ // The access policy's `name` field is used to identify the
+ // policy to update.
+ AccessPolicy access_policy = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. If set, validate the request and preview the update, but do not
+ // actually post it.
+ bool validate_only = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for DeleteAccessPolicy method.
+message DeleteAccessPolicyRequest {
+ // Required. The name of the access policy to delete.
+ //
+ // Format:
+ // `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "iam.googleapis.com/AccessPolicy"
+ }
+ ];
+
+ // Optional. The etag of the access policy. If this is provided, it must match
+ // the server's etag.
+ string etag = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. If set, validate the request and preview the deletion, but do not
+ // actually post it.
+ bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. If set to true, the request will force the deletion of the Policy
+ // even if the Policy references PolicyBindings.
+ bool force = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for ListAccessPolicies method.
+message ListAccessPoliciesRequest {
+ // Required. The parent resource, which owns the collection of access policy
+ // resources.
+ //
+ // Format:
+ // `projects/{project_id}/locations/{location}`
+ // `projects/{project_number}/locations/{location}`
+ // `folders/{folder_id}/locations/{location}`
+ // `organizations/{organization_id}/locations/{location}`
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "iam.googleapis.com/AccessPolicy"
+ }
+ ];
+
+ // Optional. The maximum number of access policies to return. The
+ // service may return fewer than this value.
+ //
+ // If unspecified, at most 50 access policies will be returned. Valid value
+ // ranges from 1 to 1000; values above 1000 will be coerced to 1000.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A page token, received from a previous
+ // `ListAccessPolicies` call. Provide this to retrieve the
+ // subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // `ListAccessPolicies` must match the call that provided the
+ // page token.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for ListAccessPolicies method.
+message ListAccessPoliciesResponse {
+ // The access policies from the specified parent.
+ repeated AccessPolicy access_policies = 1;
+
+ // Optional. A token, which can be sent as `page_token` to retrieve the next
+ // page. If this field is omitted, there are no subsequent pages.
+ string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for SearchAccessPolicyBindings rpc.
+message SearchAccessPolicyBindingsRequest {
+ // Required. The name of the access policy.
+ // Format:
+ // `organizations/{organization_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `folders/{folder_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `projects/{project_id}/locations/{location}/accessPolicies/{access_policy_id}`
+ // `projects/{project_number}/locations/{location}/accessPolicies/{access_policy_id}`
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "iam.googleapis.com/AccessPolicy"
+ }
+ ];
+
+ // Optional. The maximum number of policy bindings to return. The service may
+ // return fewer than this value.
+ //
+ // If unspecified, at most 50 policy bindings will be returned.
+ // The maximum value is 1000; values above 1000 will be coerced to 1000.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A page token, received from a previous
+ // `SearchAccessPolicyBindingsRequest` call. Provide this to
+ // retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to
+ // `SearchAccessPolicyBindingsRequest` must match the call
+ // that provided the page token.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for SearchAccessPolicyBindings rpc.
+message SearchAccessPolicyBindingsResponse {
+ // The policy bindings that reference the specified policy.
+ repeated PolicyBinding policy_bindings = 1;
+
+ // Optional. A token, which can be sent as `page_token` to retrieve the next
+ // page. If this field is omitted, there are no subsequent pages.
+ string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL];
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/access_policy_resources.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/access_policy_resources.proto
new file mode 100644
index 0000000000..624a0d7acd
--- /dev/null
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/access_policy_resources.proto
@@ -0,0 +1,216 @@
+// Copyright 2026 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.iam.v3beta;
+
+import "google/api/field_behavior.proto";
+import "google/api/field_info.proto";
+import "google/api/resource.proto";
+import "google/protobuf/timestamp.proto";
+import "google/type/expr.proto";
+
+option csharp_namespace = "Google.Cloud.Iam.V3Beta";
+option go_package = "cloud.google.com/go/iam/apiv3beta/iampb;iampb";
+option java_multiple_files = true;
+option java_outer_classname = "AccessPolicyResourcesProto";
+option java_package = "com.google.iam.v3beta";
+option php_namespace = "Google\\Cloud\\Iam\\V3beta";
+
+// An IAM access policy resource.
+message AccessPolicy {
+ option (google.api.resource) = {
+ type: "iam.googleapis.com/AccessPolicy"
+ pattern: "organizations/{organization}/locations/{location}/accessPolicies/{access_policy}"
+ pattern: "folders/{folder}/locations/{location}/accessPolicies/{access_policy}"
+ pattern: "projects/{project}/locations/{location}/accessPolicies/{access_policy}"
+ plural: "accessPolicies"
+ singular: "accessPolicy"
+ };
+
+ // Identifier. The resource name of the access policy.
+ //
+ // The following formats are supported:
+ //
+ // * `projects/{project_id}/locations/{location}/accessPolicies/{policy_id}`
+ // * `projects/{project_number}/locations/{location}/accessPolicies/{policy_id}`
+ // * `folders/{folder_id}/locations/{location}/accessPolicies/{policy_id}`
+ // * `organizations/{organization_id}/locations/{location}/accessPolicies/{policy_id}`
+ string name = 1 [(google.api.field_behavior) = IDENTIFIER];
+
+ // Output only. The globally unique ID of the access policy.
+ string uid = 2 [
+ (google.api.field_info).format = UUID4,
+ (google.api.field_behavior) = OUTPUT_ONLY
+ ];
+
+ // Optional. The etag for the access policy.
+ // If this is provided on update, it must match the server's etag.
+ string etag = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The description of the access policy. Must be less than
+ // or equal to 63 characters.
+ string display_name = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. User defined annotations. See
+ // https://google.aip.dev/148#annotations for more details such as format and
+ // size limitations
+ map annotations = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Output only. The time when the access policy was created.
+ google.protobuf.Timestamp create_time = 6
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The time when the access policy was most recently
+ // updated.
+ google.protobuf.Timestamp update_time = 7
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Optional. The details for the access policy.
+ AccessPolicyDetails details = 8 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Access policy details.
+message AccessPolicyDetails {
+ // Required. A list of access policy rules.
+ repeated AccessPolicyRule rules = 1 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Access Policy Rule that determines the behavior of the policy.
+message AccessPolicyRule {
+ // Attributes that are used to determine whether this rule applies to a
+ // request.
+ message Operation {
+ // Optional. The permissions that are explicitly affected by this rule. Each
+ // permission uses the format `{service_fqdn}/{resource}.{verb}`, where
+ // `{service_fqdn}` is the fully qualified domain name for the service.
+ // Currently supported permissions are as follows:
+ //
+ // * `eventarc.googleapis.com/messageBuses.publish`.
+ repeated string permissions = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Specifies the permissions that this rule excludes from the set
+ // of affected permissions given by `permissions`. If a permission appears
+ // in `permissions` _and_ in `excluded_permissions` then it will _not_ be
+ // subject to the policy effect.
+ //
+ // The excluded permissions can be specified using the same syntax as
+ // `permissions`.
+ repeated string excluded_permissions = 2
+ [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // An effect to describe the access relationship.
+ enum Effect {
+ // The effect is unspecified.
+ EFFECT_UNSPECIFIED = 0;
+
+ // The policy will deny access if it evaluates to true.
+ DENY = 1;
+
+ // The policy will grant access if it evaluates to true.
+ ALLOW = 2;
+ }
+
+ // Optional. Customer specified description of the rule. Must be less than or
+ // equal to 256 characters.
+ optional string description = 1 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. The effect of the rule.
+ optional Effect effect = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The identities for which this rule's effect governs using one or
+ // more permissions on Google Cloud resources. This field can contain the
+ // following values:
+ //
+ // * `principal://goog/subject/{email_id}`: A specific Google Account.
+ // Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
+ // example, `principal://goog/subject/alice@example.com`.
+ //
+ // * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`:
+ // A Google Cloud service account. For example,
+ // `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`.
+ //
+ // * `principalSet://goog/group/{group_id}`: A Google group. For example,
+ // `principalSet://goog/group/admins@example.com`.
+ //
+ // * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the
+ // principals associated with the specified Google Workspace or Cloud
+ // Identity customer ID. For example,
+ // `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
+ //
+ //
+ // If an identifier that was previously set on a policy is soft deleted, then
+ // calls to read that policy will return the identifier with a deleted
+ // prefix. Users cannot set identifiers with this syntax.
+ //
+ // * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific
+ // Google Account that was deleted recently. For example,
+ // `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If
+ // the Google Account is recovered, this identifier reverts to the standard
+ // identifier for a Google Account.
+ //
+ // * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group
+ // that was deleted recently. For example,
+ // `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`.
+ // If the Google group is restored, this identifier reverts to the standard
+ // identifier for a Google group.
+ //
+ // * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`:
+ // A Google Cloud service account that was deleted recently. For example,
+ // `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`.
+ // If the service account is undeleted, this identifier reverts to the
+ // standard identifier for a service account.
+ repeated string principals = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The identities that are excluded from the access policy rule,
+ // even if they are listed in the `principals`. For example, you could add a
+ // Google group to the `principals`, then exclude specific users who belong to
+ // that group.
+ repeated string excluded_principals = 4
+ [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. Attributes that are used to determine whether this rule applies
+ // to a request.
+ Operation operation = 10 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The conditions that determine whether this rule applies to a
+ // request. Conditions are identified by their key, which is the FQDN of the
+ // service that they are relevant to. For example:
+ //
+ // ```
+ // "conditions": {
+ // "iam.googleapis.com": {
+ // "expression":
+ // }
+ // }
+ // ```
+ //
+ // Each rule is evaluated independently. If this rule does not apply
+ // to a request, other rules might still apply.
+ // Currently supported keys are as follows:
+ //
+ //
+ // * `eventarc.googleapis.com`: Can use `CEL` functions that evaluate
+ // resource fields.
+ //
+ // * `iam.googleapis.com`: Can use `CEL` functions that evaluate
+ // [resource
+ // tags](https://cloud.google.com/iam/help/conditions/resource-tags) and
+ // combine them using boolean and logical operators. Other functions and
+ // operators are not supported.
+ map conditions = 9
+ [(google.api.field_behavior) = OPTIONAL];
+}
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/operation_metadata.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/operation_metadata.proto
index 6c62252093..c3e75283e5 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/operation_metadata.proto
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/operation_metadata.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_binding_resources.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_binding_resources.proto
index 1fed6cfcef..ea3534b83b 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_binding_resources.proto
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_binding_resources.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -40,44 +40,61 @@ message PolicyBinding {
singular: "policyBinding"
};
- // Target is the full resource name of the resource to which the policy will
+ // The full resource name of the resource to which the policy will
// be bound. Immutable once set.
message Target {
// The different types of targets that can be bound to a policy.
oneof target {
- // Immutable. Full Resource Name used for principal access boundary policy
- // bindings. The principal set must be directly parented by the policy
- // binding's parent or same as the parent if the target is a
- // project/folder/organization.
+ // Immutable. The full resource name that's used for principal access
+ // boundary policy bindings. The principal set must be directly parented
+ // by the policy binding's parent or same as the parent if the target is a
+ // project, folder, or organization.
//
// Examples:
- // * For binding's parented by an organization:
- // * Organization:
- // `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
- // * Workforce Identity:
- // `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
- // * Workspace Identity:
- // `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
- // * For binding's parented by a folder:
- // * Folder:
- // `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
- // * For binding's parented by a project:
- // * Project:
+ //
+ // * For bindings parented by an organization:
+ // * Organization:
+ // `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ // * Workforce Identity:
+ // `//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID`
+ // * Workspace Identity:
+ // `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
+ // * For bindings parented by a folder:
+ // * Folder:
+ // `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ // * For bindings parented by a project:
+ // * Project:
+ // * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
+ // * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
+ // * Workload Identity Pool:
+ // `//iam.googleapis.com/projects/PROJECT_NUMBER/locations/LOCATION/workloadIdentityPools/WORKLOAD_POOL_ID`
+ string principal_set = 1 [(google.api.field_behavior) = IMMUTABLE];
+
+ // Immutable. The full resource name that's used for access policy
+ // bindings.
+ //
+ // Examples:
+ //
+ // * Organization:
+ // `//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID`
+ // * Folder: `//cloudresourcemanager.googleapis.com/folders/FOLDER_ID`
+ // * Project:
// * `//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER`
// * `//cloudresourcemanager.googleapis.com/projects/PROJECT_ID`
- // * Workload Identity Pool:
- // `//iam.googleapis.com/projects/PROJECT_NUMBER/locations/LOCATION/workloadIdentityPools/WORKLOAD_POOL_ID`
- string principal_set = 1 [(google.api.field_behavior) = IMMUTABLE];
+ string resource = 2 [(google.api.field_behavior) = IMMUTABLE];
}
}
- // Different policy kinds supported in this binding.
+ // The different policy kinds supported in this binding.
enum PolicyKind {
// Unspecified policy kind; Not a valid state
POLICY_KIND_UNSPECIFIED = 0;
// Principal access boundary policy kind
PRINCIPAL_ACCESS_BOUNDARY = 1;
+
+ // Access policy kind.
+ ACCESS = 2;
}
// Identifier. The name of the policy binding, in the format
@@ -113,8 +130,8 @@ message PolicyBinding {
// size limitations
map annotations = 5 [(google.api.field_behavior) = OPTIONAL];
- // Required. Immutable. Target is the full resource name of the resource to
- // which the policy will be bound. Immutable once set.
+ // Required. Immutable. The full resource name of the resource to which the
+ // policy will be bound. Immutable once set.
Target target = 6 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.field_behavior) = REQUIRED
@@ -166,13 +183,14 @@ message PolicyBinding {
// - `principal.type != `
// - `principal.type in []`
//
- // Supported principal types are Workspace, Workforce Pool, Workload Pool and
- // Service Account. Allowed string must be one of:
+ // Supported principal types are workspace, workforce pool, workload pool,
+ // service account, and Agent Identity. Allowed string must be one of:
//
- // - iam.googleapis.com/WorkspaceIdentity
- // - iam.googleapis.com/WorkforcePoolIdentity
- // - iam.googleapis.com/WorkloadPoolIdentity
- // - iam.googleapis.com/ServiceAccount
+ // - `iam.googleapis.com/WorkspaceIdentity`
+ // - `iam.googleapis.com/WorkforcePoolIdentity`
+ // - `iam.googleapis.com/WorkloadPoolIdentity`
+ // - `iam.googleapis.com/ServiceAccount`
+ // - `iam.googleapis.com/AgentPoolIdentity` (available in Preview)
google.type.Expr condition = 8 [(google.api.field_behavior) = OPTIONAL];
// Output only. The time when the policy binding was created.
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_bindings_service.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_bindings_service.proto
index e4f7c85447..d031c83d11 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_bindings_service.proto
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/policy_bindings_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -50,7 +50,7 @@ service PolicyBindings {
// Creates a policy binding and returns a long-running operation.
// Callers will need the IAM permissions on both the policy and target.
- // Once the binding is created, the policy is applied to the target.
+ // After the binding is created, the policy is applied to the target.
rpc CreatePolicyBinding(CreatePolicyBindingRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
@@ -89,9 +89,7 @@ service PolicyBindings {
// Updates a policy binding and returns a long-running operation.
// Callers will need the IAM permissions on the policy and target in the
- // binding to update, and the IAM permission to remove the existing policy
- // from the binding. Target is immutable and cannot be updated. Once the
- // binding is updated, the new policy is applied to the target.
+ // binding to update. Target and policy are immutable and cannot be updated.
rpc UpdatePolicyBinding(UpdatePolicyBindingRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
@@ -115,7 +113,7 @@ service PolicyBindings {
// Deletes a policy binding and returns a long-running operation.
// Callers will need the IAM permissions on both the policy and target.
- // Once the binding is deleted, the policy no longer applies to the target.
+ // After the binding is deleted, the policy no longer applies to the target.
rpc DeletePolicyBinding(DeletePolicyBindingRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
@@ -283,8 +281,7 @@ message ListPolicyBindingsRequest {
// Optional. The maximum number of policy bindings to return. The service may
// return fewer than this value.
//
- // If unspecified, at most 50 policy bindings will be returned.
- // The maximum value is 1000; values above 1000 will be coerced to 1000.
+ // The default value is 50. The maximum value is 1000.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ListPolicyBindings` call.
@@ -295,7 +292,8 @@ message ListPolicyBindingsRequest {
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. An expression for filtering the results of the request. Filter
- // rules are case insensitive. Some eligible fields for filtering are:
+ // rules are case insensitive. Some eligible fields for filtering are the
+ // following:
//
// + `target`
// + `policy`
@@ -335,8 +333,7 @@ message SearchTargetPolicyBindingsRequest {
// Optional. The maximum number of policy bindings to return. The service may
// return fewer than this value.
//
- // If unspecified, at most 50 policy bindings will be returned.
- // The maximum value is 1000; values above 1000 will be coerced to 1000.
+ // The default value is 50. The maximum value is 1000.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous
@@ -364,6 +361,18 @@ message SearchTargetPolicyBindingsRequest {
child_type: "iam.googleapis.com/PolicyBinding"
}
];
+
+ // Optional. Filtering currently only supports the kind of policies to return,
+ // and must be in the format "policy_kind={policy_kind}".
+ //
+ // If String is empty, bindings bound to all kinds of policies would be
+ // returned.
+ //
+ // The only supported values are the following:
+ //
+ // * "policy_kind=PRINCIPAL_ACCESS_BOUNDARY",
+ // * "policy_kind=ACCESS"
+ string filter = 6 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for SearchTargetPolicyBindings method.
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policies_service.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policies_service.proto
index fd3817c338..617d90c268 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policies_service.proto
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policies_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policy_resources.proto b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policy_resources.proto
index 738e0cc05c..d1aa8b8209 100644
--- a/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policy_resources.proto
+++ b/java-iam/proto-google-iam-v3beta/src/main/proto/google/iam/v3beta/principal_access_boundary_policy_resources.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/java-showcase/gapic-showcase/src/main/resources/META-INF/native-image/com.google.showcase.v1beta1/reflect-config.json b/java-showcase/gapic-showcase/src/main/resources/META-INF/native-image/com.google.showcase.v1beta1/reflect-config.json
index 55863aee26..4fcf07d483 100644
--- a/java-showcase/gapic-showcase/src/main/resources/META-INF/native-image/com.google.showcase.v1beta1/reflect-config.json
+++ b/java-showcase/gapic-showcase/src/main/resources/META-INF/native-image/com.google.showcase.v1beta1/reflect-config.json
@@ -1,4 +1,58 @@
[
+ {
+ "name": "com.google.api.BatchingConfigProto",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.api.BatchingConfigProto$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.api.BatchingDescriptorProto",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.api.BatchingDescriptorProto$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.api.BatchingSettingsProto",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.api.BatchingSettingsProto$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
{
"name": "com.google.api.ClientLibraryDestination",
"queryAllDeclaredConstructors": true,
@@ -143,6 +197,15 @@
"allDeclaredClasses": true,
"allPublicClasses": true
},
+ {
+ "name": "com.google.api.FlowControlLimitExceededBehaviorProto",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
{
"name": "com.google.api.GoSettings",
"queryAllDeclaredConstructors": true,