From e5e3c91b676d97cf38a22cd6dacd67b76781f76d Mon Sep 17 00:00:00 2001 From: Jiahua Huang Date: Wed, 29 Jan 2025 22:32:06 +0000 Subject: [PATCH] Use maven plugin to generate Client-Side CAB proto code. Change-Id: I8154ea3c3c3126a1cf47e563b9b9e2f6b85c7f1a --- .../ClientSideAccessBoundaryProto.java | 2174 ----------------- cab-token-generator/pom.xml | 27 + .../proto/cel/expr/checked.proto | 344 +++ .../proto/cel/expr/syntax.proto | 416 ++++ .../proto/client_side_access_boundary.proto | 22 + 5 files changed, 809 insertions(+), 2174 deletions(-) delete mode 100644 cab-token-generator/java/com/google/auth/credentialaccessboundary/protobuf/ClientSideAccessBoundaryProto.java create mode 100644 cab-token-generator/proto/cel/expr/checked.proto create mode 100644 cab-token-generator/proto/cel/expr/syntax.proto create mode 100644 cab-token-generator/proto/client_side_access_boundary.proto diff --git a/cab-token-generator/java/com/google/auth/credentialaccessboundary/protobuf/ClientSideAccessBoundaryProto.java b/cab-token-generator/java/com/google/auth/credentialaccessboundary/protobuf/ClientSideAccessBoundaryProto.java deleted file mode 100644 index 7a26c73c8..000000000 --- a/cab-token-generator/java/com/google/auth/credentialaccessboundary/protobuf/ClientSideAccessBoundaryProto.java +++ /dev/null @@ -1,2174 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: client_side_access_boundary.proto - -// Protobuf Java Version: 3.25.5 -package com.google.auth.credentialaccessboundary.protobuf; - -public final class ClientSideAccessBoundaryProto { - private ClientSideAccessBoundaryProto() {} - - public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} - - public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); - } - - public interface ClientSideAccessBoundaryRuleOrBuilder - extends - // @@protoc_insertion_point(interface_extends:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule) - com.google.protobuf.MessageOrBuilder { - - /** - * string available_resource = 1; - * - * @return The availableResource. - */ - java.lang.String getAvailableResource(); - /** - * string available_resource = 1; - * - * @return The bytes for availableResource. - */ - com.google.protobuf.ByteString getAvailableResourceBytes(); - - /** - * repeated string available_permissions = 2; - * - * @return A list containing the availablePermissions. - */ - java.util.List getAvailablePermissionsList(); - /** - * repeated string available_permissions = 2; - * - * @return The count of availablePermissions. - */ - int getAvailablePermissionsCount(); - /** - * repeated string available_permissions = 2; - * - * @param index The index of the element to return. - * @return The availablePermissions at the given index. - */ - java.lang.String getAvailablePermissions(int index); - /** - * repeated string available_permissions = 2; - * - * @param index The index of the value to return. - * @return The bytes of the availablePermissions at the given index. - */ - com.google.protobuf.ByteString getAvailablePermissionsBytes(int index); - - /** - * .cel.expr.Expr compiled_availability_condition = 4; - * - * @return Whether the compiledAvailabilityCondition field is set. - */ - boolean hasCompiledAvailabilityCondition(); - /** - * .cel.expr.Expr compiled_availability_condition = 4; - * - * @return The compiledAvailabilityCondition. - */ - dev.cel.expr.Expr getCompiledAvailabilityCondition(); - /** .cel.expr.Expr compiled_availability_condition = 4; */ - dev.cel.expr.ExprOrBuilder getCompiledAvailabilityConditionOrBuilder(); - } - /** - * Protobuf type {@code - * com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule} - */ - public static final class ClientSideAccessBoundaryRule - extends com.google.protobuf.GeneratedMessageV3 - implements - // @@protoc_insertion_point(message_implements:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule) - ClientSideAccessBoundaryRuleOrBuilder { - private static final long serialVersionUID = 0L; - // Use ClientSideAccessBoundaryRule.newBuilder() to construct. - private ClientSideAccessBoundaryRule( - com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - - private ClientSideAccessBoundaryRule() { - availableResource_ = ""; - availablePermissions_ = com.google.protobuf.LazyStringArrayList.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new ClientSideAccessBoundaryRule(); - } - - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.class, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder.class); - } - - private int bitField0_; - public static final int AVAILABLE_RESOURCE_FIELD_NUMBER = 1; - - @SuppressWarnings("serial") - private volatile java.lang.Object availableResource_ = ""; - /** - * string available_resource = 1; - * - * @return The availableResource. - */ - @java.lang.Override - public java.lang.String getAvailableResource() { - java.lang.Object ref = availableResource_; - 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(); - availableResource_ = s; - return s; - } - } - /** - * string available_resource = 1; - * - * @return The bytes for availableResource. - */ - @java.lang.Override - public com.google.protobuf.ByteString getAvailableResourceBytes() { - java.lang.Object ref = availableResource_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - availableResource_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int AVAILABLE_PERMISSIONS_FIELD_NUMBER = 2; - - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList availablePermissions_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - /** - * repeated string available_permissions = 2; - * - * @return A list containing the availablePermissions. - */ - public com.google.protobuf.ProtocolStringList getAvailablePermissionsList() { - return availablePermissions_; - } - /** - * repeated string available_permissions = 2; - * - * @return The count of availablePermissions. - */ - public int getAvailablePermissionsCount() { - return availablePermissions_.size(); - } - /** - * repeated string available_permissions = 2; - * - * @param index The index of the element to return. - * @return The availablePermissions at the given index. - */ - public java.lang.String getAvailablePermissions(int index) { - return availablePermissions_.get(index); - } - /** - * repeated string available_permissions = 2; - * - * @param index The index of the value to return. - * @return The bytes of the availablePermissions at the given index. - */ - public com.google.protobuf.ByteString getAvailablePermissionsBytes(int index) { - return availablePermissions_.getByteString(index); - } - - public static final int COMPILED_AVAILABILITY_CONDITION_FIELD_NUMBER = 4; - private dev.cel.expr.Expr compiledAvailabilityCondition_; - /** - * .cel.expr.Expr compiled_availability_condition = 4; - * - * @return Whether the compiledAvailabilityCondition field is set. - */ - @java.lang.Override - public boolean hasCompiledAvailabilityCondition() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .cel.expr.Expr compiled_availability_condition = 4; - * - * @return The compiledAvailabilityCondition. - */ - @java.lang.Override - public dev.cel.expr.Expr getCompiledAvailabilityCondition() { - return compiledAvailabilityCondition_ == null - ? dev.cel.expr.Expr.getDefaultInstance() - : compiledAvailabilityCondition_; - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - @java.lang.Override - public dev.cel.expr.ExprOrBuilder getCompiledAvailabilityConditionOrBuilder() { - return compiledAvailabilityCondition_ == null - ? dev.cel.expr.Expr.getDefaultInstance() - : compiledAvailabilityCondition_; - } - - private byte memoizedIsInitialized = -1; - - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(availableResource_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, availableResource_); - } - for (int i = 0; i < availablePermissions_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString( - output, 2, availablePermissions_.getRaw(i)); - } - if (((bitField0_ & 0x00000001) != 0)) { - output.writeMessage(4, getCompiledAvailabilityCondition()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(availableResource_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, availableResource_); - } - { - int dataSize = 0; - for (int i = 0; i < availablePermissions_.size(); i++) { - dataSize += computeStringSizeNoTag(availablePermissions_.getRaw(i)); - } - size += dataSize; - size += 1 * getAvailablePermissionsList().size(); - } - if (((bitField0_ & 0x00000001) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 4, getCompiledAvailabilityCondition()); - } - 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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule)) { - return super.equals(obj); - } - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - other = - (com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule) - obj; - - if (!getAvailableResource().equals(other.getAvailableResource())) return false; - if (!getAvailablePermissionsList().equals(other.getAvailablePermissionsList())) return false; - if (hasCompiledAvailabilityCondition() != other.hasCompiledAvailabilityCondition()) - return false; - if (hasCompiledAvailabilityCondition()) { - if (!getCompiledAvailabilityCondition().equals(other.getCompiledAvailabilityCondition())) - 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) + AVAILABLE_RESOURCE_FIELD_NUMBER; - hash = (53 * hash) + getAvailableResource().hashCode(); - if (getAvailablePermissionsCount() > 0) { - hash = (37 * hash) + AVAILABLE_PERMISSIONS_FIELD_NUMBER; - hash = (53 * hash) + getAvailablePermissionsList().hashCode(); - } - if (hasCompiledAvailabilityCondition()) { - hash = (37 * hash) + COMPILED_AVAILABILITY_CONDITION_FIELD_NUMBER; - hash = (53 * hash) + getCompiledAvailabilityCondition().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom(java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom( - java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom(com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - 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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException( - PARSER, input, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseDelimitedFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( - PARSER, input, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException( - PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { - return newBuilder(); - } - - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - - public static Builder newBuilder( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code - * com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule} - */ - public static final class Builder - extends com.google.protobuf.GeneratedMessageV3.Builder - implements - // @@protoc_insertion_point(builder_implements:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule) - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.class, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder.class); - } - - // Construct using - // com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto.ClientSideAccessBoundaryRule.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getCompiledAvailabilityConditionFieldBuilder(); - } - } - - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - availableResource_ = ""; - availablePermissions_ = com.google.protobuf.LazyStringArrayList.emptyList(); - compiledAvailabilityCondition_ = null; - if (compiledAvailabilityConditionBuilder_ != null) { - compiledAvailabilityConditionBuilder_.dispose(); - compiledAvailabilityConditionBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_descriptor; - } - - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - getDefaultInstanceForType() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.getDefaultInstance(); - } - - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - build() { - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - buildPartial() { - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - result = - new com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule(this); - if (bitField0_ != 0) { - buildPartial0(result); - } - onBuilt(); - return result; - } - - private void buildPartial0( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.availableResource_ = availableResource_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - availablePermissions_.makeImmutable(); - result.availablePermissions_ = availablePermissions_; - } - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000004) != 0)) { - result.compiledAvailabilityCondition_ = - compiledAvailabilityConditionBuilder_ == null - ? compiledAvailabilityCondition_ - : compiledAvailabilityConditionBuilder_.build(); - to_bitField0_ |= 0x00000001; - } - result.bitField0_ |= to_bitField0_; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, - java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); - } - - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other - instanceof - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule) { - return mergeFrom( - (com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule) - other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - other) { - if (other - == com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.getDefaultInstance()) return this; - if (!other.getAvailableResource().isEmpty()) { - availableResource_ = other.availableResource_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.availablePermissions_.isEmpty()) { - if (availablePermissions_.isEmpty()) { - availablePermissions_ = other.availablePermissions_; - bitField0_ |= 0x00000002; - } else { - ensureAvailablePermissionsIsMutable(); - availablePermissions_.addAll(other.availablePermissions_); - } - onChanged(); - } - if (other.hasCompiledAvailabilityCondition()) { - mergeCompiledAvailabilityCondition(other.getCompiledAvailabilityCondition()); - } - 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: - { - availableResource_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - ensureAvailablePermissionsIsMutable(); - availablePermissions_.add(s); - break; - } // case 18 - case 34: - { - input.readMessage( - getCompiledAvailabilityConditionFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000004; - break; - } // case 34 - default: - { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private int bitField0_; - - private java.lang.Object availableResource_ = ""; - /** - * string available_resource = 1; - * - * @return The availableResource. - */ - public java.lang.String getAvailableResource() { - java.lang.Object ref = availableResource_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - availableResource_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string available_resource = 1; - * - * @return The bytes for availableResource. - */ - public com.google.protobuf.ByteString getAvailableResourceBytes() { - java.lang.Object ref = availableResource_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - availableResource_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string available_resource = 1; - * - * @param value The availableResource to set. - * @return This builder for chaining. - */ - public Builder setAvailableResource(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - availableResource_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string available_resource = 1; - * - * @return This builder for chaining. - */ - public Builder clearAvailableResource() { - availableResource_ = getDefaultInstance().getAvailableResource(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string available_resource = 1; - * - * @param value The bytes for availableResource to set. - * @return This builder for chaining. - */ - public Builder setAvailableResourceBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - availableResource_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringArrayList availablePermissions_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureAvailablePermissionsIsMutable() { - if (!availablePermissions_.isModifiable()) { - availablePermissions_ = - new com.google.protobuf.LazyStringArrayList(availablePermissions_); - } - bitField0_ |= 0x00000002; - } - /** - * repeated string available_permissions = 2; - * - * @return A list containing the availablePermissions. - */ - public com.google.protobuf.ProtocolStringList getAvailablePermissionsList() { - availablePermissions_.makeImmutable(); - return availablePermissions_; - } - /** - * repeated string available_permissions = 2; - * - * @return The count of availablePermissions. - */ - public int getAvailablePermissionsCount() { - return availablePermissions_.size(); - } - /** - * repeated string available_permissions = 2; - * - * @param index The index of the element to return. - * @return The availablePermissions at the given index. - */ - public java.lang.String getAvailablePermissions(int index) { - return availablePermissions_.get(index); - } - /** - * repeated string available_permissions = 2; - * - * @param index The index of the value to return. - * @return The bytes of the availablePermissions at the given index. - */ - public com.google.protobuf.ByteString getAvailablePermissionsBytes(int index) { - return availablePermissions_.getByteString(index); - } - /** - * repeated string available_permissions = 2; - * - * @param index The index to set the value at. - * @param value The availablePermissions to set. - * @return This builder for chaining. - */ - public Builder setAvailablePermissions(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAvailablePermissionsIsMutable(); - availablePermissions_.set(index, value); - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * repeated string available_permissions = 2; - * - * @param value The availablePermissions to add. - * @return This builder for chaining. - */ - public Builder addAvailablePermissions(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAvailablePermissionsIsMutable(); - availablePermissions_.add(value); - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * repeated string available_permissions = 2; - * - * @param values The availablePermissions to add. - * @return This builder for chaining. - */ - public Builder addAllAvailablePermissions(java.lang.Iterable values) { - ensureAvailablePermissionsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, availablePermissions_); - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * repeated string available_permissions = 2; - * - * @return This builder for chaining. - */ - public Builder clearAvailablePermissions() { - availablePermissions_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - ; - onChanged(); - return this; - } - /** - * repeated string available_permissions = 2; - * - * @param value The bytes of the availablePermissions to add. - * @return This builder for chaining. - */ - public Builder addAvailablePermissionsBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureAvailablePermissionsIsMutable(); - availablePermissions_.add(value); - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private dev.cel.expr.Expr compiledAvailabilityCondition_; - private com.google.protobuf.SingleFieldBuilderV3< - dev.cel.expr.Expr, dev.cel.expr.Expr.Builder, dev.cel.expr.ExprOrBuilder> - compiledAvailabilityConditionBuilder_; - /** - * .cel.expr.Expr compiled_availability_condition = 4; - * - * @return Whether the compiledAvailabilityCondition field is set. - */ - public boolean hasCompiledAvailabilityCondition() { - return ((bitField0_ & 0x00000004) != 0); - } - /** - * .cel.expr.Expr compiled_availability_condition = 4; - * - * @return The compiledAvailabilityCondition. - */ - public dev.cel.expr.Expr getCompiledAvailabilityCondition() { - if (compiledAvailabilityConditionBuilder_ == null) { - return compiledAvailabilityCondition_ == null - ? dev.cel.expr.Expr.getDefaultInstance() - : compiledAvailabilityCondition_; - } else { - return compiledAvailabilityConditionBuilder_.getMessage(); - } - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - public Builder setCompiledAvailabilityCondition(dev.cel.expr.Expr value) { - if (compiledAvailabilityConditionBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - compiledAvailabilityCondition_ = value; - } else { - compiledAvailabilityConditionBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - public Builder setCompiledAvailabilityCondition(dev.cel.expr.Expr.Builder builderForValue) { - if (compiledAvailabilityConditionBuilder_ == null) { - compiledAvailabilityCondition_ = builderForValue.build(); - } else { - compiledAvailabilityConditionBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - public Builder mergeCompiledAvailabilityCondition(dev.cel.expr.Expr value) { - if (compiledAvailabilityConditionBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0) - && compiledAvailabilityCondition_ != null - && compiledAvailabilityCondition_ != dev.cel.expr.Expr.getDefaultInstance()) { - getCompiledAvailabilityConditionBuilder().mergeFrom(value); - } else { - compiledAvailabilityCondition_ = value; - } - } else { - compiledAvailabilityConditionBuilder_.mergeFrom(value); - } - if (compiledAvailabilityCondition_ != null) { - bitField0_ |= 0x00000004; - onChanged(); - } - return this; - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - public Builder clearCompiledAvailabilityCondition() { - bitField0_ = (bitField0_ & ~0x00000004); - compiledAvailabilityCondition_ = null; - if (compiledAvailabilityConditionBuilder_ != null) { - compiledAvailabilityConditionBuilder_.dispose(); - compiledAvailabilityConditionBuilder_ = null; - } - onChanged(); - return this; - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - public dev.cel.expr.Expr.Builder getCompiledAvailabilityConditionBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getCompiledAvailabilityConditionFieldBuilder().getBuilder(); - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - public dev.cel.expr.ExprOrBuilder getCompiledAvailabilityConditionOrBuilder() { - if (compiledAvailabilityConditionBuilder_ != null) { - return compiledAvailabilityConditionBuilder_.getMessageOrBuilder(); - } else { - return compiledAvailabilityCondition_ == null - ? dev.cel.expr.Expr.getDefaultInstance() - : compiledAvailabilityCondition_; - } - } - /** .cel.expr.Expr compiled_availability_condition = 4; */ - private com.google.protobuf.SingleFieldBuilderV3< - dev.cel.expr.Expr, dev.cel.expr.Expr.Builder, dev.cel.expr.ExprOrBuilder> - getCompiledAvailabilityConditionFieldBuilder() { - if (compiledAvailabilityConditionBuilder_ == null) { - compiledAvailabilityConditionBuilder_ = - new com.google.protobuf.SingleFieldBuilderV3< - dev.cel.expr.Expr, dev.cel.expr.Expr.Builder, dev.cel.expr.ExprOrBuilder>( - getCompiledAvailabilityCondition(), getParentForChildren(), isClean()); - compiledAvailabilityCondition_ = null; - } - return compiledAvailabilityConditionBuilder_; - } - - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - // @@protoc_insertion_point(builder_scope:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule) - } - - // @@protoc_insertion_point(class_scope:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule) - private static final com.google.auth.credentialaccessboundary.protobuf - .ClientSideAccessBoundaryProto.ClientSideAccessBoundaryRule - DEFAULT_INSTANCE; - - static { - DEFAULT_INSTANCE = - new com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule(); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ClientSideAccessBoundaryRule 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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - } - - public interface ClientSideAccessBoundaryOrBuilder - extends - // @@protoc_insertion_point(interface_extends:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary) - com.google.protobuf.MessageOrBuilder { - - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - java.util.List< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule> - getAccessBoundaryRulesList(); - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - getAccessBoundaryRules(int index); - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - int getAccessBoundaryRulesCount(); - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - java.util.List< - ? extends - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder> - getAccessBoundaryRulesOrBuilderList(); - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder - getAccessBoundaryRulesOrBuilder(int index); - } - /** - * Protobuf type {@code com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary} - */ - public static final class ClientSideAccessBoundary extends com.google.protobuf.GeneratedMessageV3 - implements - // @@protoc_insertion_point(message_implements:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary) - ClientSideAccessBoundaryOrBuilder { - private static final long serialVersionUID = 0L; - // Use ClientSideAccessBoundary.newBuilder() to construct. - private ClientSideAccessBoundary(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - - private ClientSideAccessBoundary() { - accessBoundaryRules_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new ClientSideAccessBoundary(); - } - - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary.class, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary.Builder.class); - } - - public static final int ACCESS_BOUNDARY_RULES_FIELD_NUMBER = 1; - - @SuppressWarnings("serial") - private java.util.List< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule> - accessBoundaryRules_; - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - @java.lang.Override - public java.util.List< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule> - getAccessBoundaryRulesList() { - return accessBoundaryRules_; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - @java.lang.Override - public java.util.List< - ? extends - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder> - getAccessBoundaryRulesOrBuilderList() { - return accessBoundaryRules_; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - @java.lang.Override - public int getAccessBoundaryRulesCount() { - return accessBoundaryRules_.size(); - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - getAccessBoundaryRules(int index) { - return accessBoundaryRules_.get(index); - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder - getAccessBoundaryRulesOrBuilder(int index) { - return accessBoundaryRules_.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 < accessBoundaryRules_.size(); i++) { - output.writeMessage(1, accessBoundaryRules_.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 < accessBoundaryRules_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 1, accessBoundaryRules_.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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary)) { - return super.equals(obj); - } - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - other = - (com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary) - obj; - - if (!getAccessBoundaryRulesList().equals(other.getAccessBoundaryRulesList())) 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 (getAccessBoundaryRulesCount() > 0) { - hash = (37 * hash) + ACCESS_BOUNDARY_RULES_FIELD_NUMBER; - hash = (53 * hash) + getAccessBoundaryRulesList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom(java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom( - java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom(com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - 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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException( - PARSER, input, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseDelimitedFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( - PARSER, input, extensionRegistry); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3.parseWithIOException( - PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { - return newBuilder(); - } - - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - - public static Builder newBuilder( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary} - */ - public static final class Builder - extends com.google.protobuf.GeneratedMessageV3.Builder - implements - // @@protoc_insertion_point(builder_implements:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary) - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary.class, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary.Builder.class); - } - - // Construct using - // com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto.ClientSideAccessBoundary.newBuilder() - private Builder() {} - - private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - } - - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - if (accessBoundaryRulesBuilder_ == null) { - accessBoundaryRules_ = java.util.Collections.emptyList(); - } else { - accessBoundaryRules_ = null; - accessBoundaryRulesBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_descriptor; - } - - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - getDefaultInstanceForType() { - return com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary.getDefaultInstance(); - } - - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - build() { - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - buildPartial() { - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - result = - new com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { - buildPartial0(result); - } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - result) { - if (accessBoundaryRulesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - accessBoundaryRules_ = java.util.Collections.unmodifiableList(accessBoundaryRules_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.accessBoundaryRules_ = accessBoundaryRules_; - } else { - result.accessBoundaryRules_ = accessBoundaryRulesBuilder_.build(); - } - } - - private void buildPartial0( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - result) { - int from_bitField0_ = bitField0_; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, - java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); - } - - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other - instanceof - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary) { - return mergeFrom( - (com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary) - other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - other) { - if (other - == com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary.getDefaultInstance()) return this; - if (accessBoundaryRulesBuilder_ == null) { - if (!other.accessBoundaryRules_.isEmpty()) { - if (accessBoundaryRules_.isEmpty()) { - accessBoundaryRules_ = other.accessBoundaryRules_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.addAll(other.accessBoundaryRules_); - } - onChanged(); - } - } else { - if (!other.accessBoundaryRules_.isEmpty()) { - if (accessBoundaryRulesBuilder_.isEmpty()) { - accessBoundaryRulesBuilder_.dispose(); - accessBoundaryRulesBuilder_ = null; - accessBoundaryRules_ = other.accessBoundaryRules_; - bitField0_ = (bitField0_ & ~0x00000001); - accessBoundaryRulesBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders - ? getAccessBoundaryRulesFieldBuilder() - : null; - } else { - accessBoundaryRulesBuilder_.addAllMessages(other.accessBoundaryRules_); - } - } - } - 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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - m = - input.readMessage( - com.google.auth.credentialaccessboundary.protobuf - .ClientSideAccessBoundaryProto.ClientSideAccessBoundaryRule - .parser(), - extensionRegistry); - if (accessBoundaryRulesBuilder_ == null) { - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.add(m); - } else { - accessBoundaryRulesBuilder_.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< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule> - accessBoundaryRules_ = java.util.Collections.emptyList(); - - private void ensureAccessBoundaryRulesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - accessBoundaryRules_ = - new java.util.ArrayList< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule>(accessBoundaryRules_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder> - accessBoundaryRulesBuilder_; - - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public java.util.List< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule> - getAccessBoundaryRulesList() { - if (accessBoundaryRulesBuilder_ == null) { - return java.util.Collections.unmodifiableList(accessBoundaryRules_); - } else { - return accessBoundaryRulesBuilder_.getMessageList(); - } - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public int getAccessBoundaryRulesCount() { - if (accessBoundaryRulesBuilder_ == null) { - return accessBoundaryRules_.size(); - } else { - return accessBoundaryRulesBuilder_.getCount(); - } - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - getAccessBoundaryRules(int index) { - if (accessBoundaryRulesBuilder_ == null) { - return accessBoundaryRules_.get(index); - } else { - return accessBoundaryRulesBuilder_.getMessage(index); - } - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder setAccessBoundaryRules( - int index, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - value) { - if (accessBoundaryRulesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.set(index, value); - onChanged(); - } else { - accessBoundaryRulesBuilder_.setMessage(index, value); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder setAccessBoundaryRules( - int index, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder - builderForValue) { - if (accessBoundaryRulesBuilder_ == null) { - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.set(index, builderForValue.build()); - onChanged(); - } else { - accessBoundaryRulesBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder addAccessBoundaryRules( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - value) { - if (accessBoundaryRulesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.add(value); - onChanged(); - } else { - accessBoundaryRulesBuilder_.addMessage(value); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder addAccessBoundaryRules( - int index, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule - value) { - if (accessBoundaryRulesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.add(index, value); - onChanged(); - } else { - accessBoundaryRulesBuilder_.addMessage(index, value); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder addAccessBoundaryRules( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder - builderForValue) { - if (accessBoundaryRulesBuilder_ == null) { - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.add(builderForValue.build()); - onChanged(); - } else { - accessBoundaryRulesBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder addAccessBoundaryRules( - int index, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder - builderForValue) { - if (accessBoundaryRulesBuilder_ == null) { - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.add(index, builderForValue.build()); - onChanged(); - } else { - accessBoundaryRulesBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder addAllAccessBoundaryRules( - java.lang.Iterable< - ? extends - com.google.auth.credentialaccessboundary.protobuf - .ClientSideAccessBoundaryProto.ClientSideAccessBoundaryRule> - values) { - if (accessBoundaryRulesBuilder_ == null) { - ensureAccessBoundaryRulesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, accessBoundaryRules_); - onChanged(); - } else { - accessBoundaryRulesBuilder_.addAllMessages(values); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder clearAccessBoundaryRules() { - if (accessBoundaryRulesBuilder_ == null) { - accessBoundaryRules_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - accessBoundaryRulesBuilder_.clear(); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public Builder removeAccessBoundaryRules(int index) { - if (accessBoundaryRulesBuilder_ == null) { - ensureAccessBoundaryRulesIsMutable(); - accessBoundaryRules_.remove(index); - onChanged(); - } else { - accessBoundaryRulesBuilder_.remove(index); - } - return this; - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder - getAccessBoundaryRulesBuilder(int index) { - return getAccessBoundaryRulesFieldBuilder().getBuilder(index); - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder - getAccessBoundaryRulesOrBuilder(int index) { - if (accessBoundaryRulesBuilder_ == null) { - return accessBoundaryRules_.get(index); - } else { - return accessBoundaryRulesBuilder_.getMessageOrBuilder(index); - } - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public java.util.List< - ? extends - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder> - getAccessBoundaryRulesOrBuilderList() { - if (accessBoundaryRulesBuilder_ != null) { - return accessBoundaryRulesBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(accessBoundaryRules_); - } - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder - addAccessBoundaryRulesBuilder() { - return getAccessBoundaryRulesFieldBuilder() - .addBuilder( - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.getDefaultInstance()); - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder - addAccessBoundaryRulesBuilder(int index) { - return getAccessBoundaryRulesFieldBuilder() - .addBuilder( - index, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.getDefaultInstance()); - } - /** - * - * repeated .com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundaryRule access_boundary_rules = 1; - * - */ - public java.util.List< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder> - getAccessBoundaryRulesBuilderList() { - return getAccessBoundaryRulesFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder> - getAccessBoundaryRulesFieldBuilder() { - if (accessBoundaryRulesBuilder_ == null) { - accessBoundaryRulesBuilder_ = - new com.google.protobuf.RepeatedFieldBuilderV3< - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRule.Builder, - com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundaryRuleOrBuilder>( - accessBoundaryRules_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - accessBoundaryRules_ = null; - } - return accessBoundaryRulesBuilder_; - } - - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - // @@protoc_insertion_point(builder_scope:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary) - } - - // @@protoc_insertion_point(class_scope:com.google.auth.credentialaccessboundary.proto.ClientSideAccessBoundary) - private static final com.google.auth.credentialaccessboundary.protobuf - .ClientSideAccessBoundaryProto.ClientSideAccessBoundary - DEFAULT_INSTANCE; - - static { - DEFAULT_INSTANCE = - new com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary(); - } - - public static com.google.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ClientSideAccessBoundary 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.auth.credentialaccessboundary.protobuf.ClientSideAccessBoundaryProto - .ClientSideAccessBoundary - getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_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!client_side_access_boundary.proto\022.com" - + ".google.auth.credentialaccessboundary.pr" - + "oto\032\025cel/expr/syntax.proto\"\222\001\n\034ClientSid" - + "eAccessBoundaryRule\022\032\n\022available_resourc" - + "e\030\001 \001(\t\022\035\n\025available_permissions\030\002 \003(\t\0227" - + "\n\037compiled_availability_condition\030\004 \001(\0132" - + "\016.cel.expr.Expr\"\207\001\n\030ClientSideAccessBoun" - + "dary\022k\n\025access_boundary_rules\030\001 \003(\0132L.co" - + "m.google.auth.credentialaccessboundary.p" - + "roto.ClientSideAccessBoundaryRuleBT\n1com" - + ".google.auth.credentialaccessboundary.pr" - + "otobufB\035ClientSideAccessBoundaryProtoP\000b" - + "\006proto3" - }; - descriptor = - com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( - descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - dev.cel.expr.SyntaxProto.getDescriptor(), - }); - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_fieldAccessorTable = - new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundaryRule_descriptor, - new java.lang.String[] { - "AvailableResource", "AvailablePermissions", "CompiledAvailabilityCondition", - }); - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_fieldAccessorTable = - new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_com_google_auth_credentialaccessboundary_proto_ClientSideAccessBoundary_descriptor, - new java.lang.String[] { - "AccessBoundaryRules", - }); - dev.cel.expr.SyntaxProto.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/cab-token-generator/pom.xml b/cab-token-generator/pom.xml index e12c70615..5329f363f 100644 --- a/cab-token-generator/pom.xml +++ b/cab-token-generator/pom.xml @@ -16,6 +16,33 @@ java javatests + + + + kr.motd.maven + os-maven-plugin + 1.7.1 + + + + + org.xolstice.maven.plugins + protobuf-maven-plugin + 0.6.1 + + ${project.basedir}/proto + com.google.protobuf:protoc:${project.protobuf.version}:exe:${os.detected.classifier} + + + + + compile + test-compile + + + + + diff --git a/cab-token-generator/proto/cel/expr/checked.proto b/cab-token-generator/proto/cel/expr/checked.proto new file mode 100644 index 000000000..141eb9e8f --- /dev/null +++ b/cab-token-generator/proto/cel/expr/checked.proto @@ -0,0 +1,344 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package cel.expr; + +import "cel/expr/syntax.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/struct.proto"; + +option cc_enable_arenas = true; +option go_package = "cel.dev/expr"; +option java_multiple_files = true; +option java_outer_classname = "DeclProto"; +option java_package = "dev.cel.expr"; + +// Protos for representing CEL declarations and typed checked expressions. + +// A CEL expression which has been successfully type checked. +message CheckedExpr { + // A map from expression ids to resolved references. + // + // The following entries are in this table: + // + // - An Ident or Select expression is represented here if it resolves to a + // declaration. For instance, if `a.b.c` is represented by + // `select(select(id(a), b), c)`, and `a.b` resolves to a declaration, + // while `c` is a field selection, then the reference is attached to the + // nested select expression (but not to the id or or the outer select). + // In turn, if `a` resolves to a declaration and `b.c` are field selections, + // the reference is attached to the ident expression. + // - Every Call expression has an entry here, identifying the function being + // called. + // - Every CreateStruct expression for a message has an entry, identifying + // the message. + map reference_map = 2; + + // A map from expression ids to types. + // + // Every expression node which has a type different than DYN has a mapping + // here. If an expression has type DYN, it is omitted from this map to save + // space. + map type_map = 3; + + // The source info derived from input that generated the parsed `expr` and + // any optimizations made during the type-checking pass. + SourceInfo source_info = 5; + + // The expr version indicates the major / minor version number of the `expr` + // representation. + // + // The most common reason for a version change will be to indicate to the CEL + // runtimes that transformations have been performed on the expr during static + // analysis. In some cases, this will save the runtime the work of applying + // the same or similar transformations prior to evaluation. + string expr_version = 6; + + // The checked expression. Semantically equivalent to the parsed `expr`, but + // may have structural differences. + Expr expr = 4; +} + +// Represents a CEL type. +message Type { + // List type with typed elements, e.g. `list`. + message ListType { + // The element type. + Type elem_type = 1; + } + + // Map type with parameterized key and value types, e.g. `map`. + message MapType { + // The type of the key. + Type key_type = 1; + + // The type of the value. + Type value_type = 2; + } + + // Function type with result and arg types. + message FunctionType { + // Result type of the function. + Type result_type = 1; + + // Argument types of the function. + repeated Type arg_types = 2; + } + + // Application defined abstract type. + message AbstractType { + // The fully qualified name of this abstract type. + string name = 1; + + // Parameter types for this abstract type. + repeated Type parameter_types = 2; + } + + // CEL primitive types. + enum PrimitiveType { + // Unspecified type. + PRIMITIVE_TYPE_UNSPECIFIED = 0; + + // Boolean type. + BOOL = 1; + + // Int64 type. + // + // 32-bit integer values are widened to int64. + INT64 = 2; + + // Uint64 type. + // + // 32-bit unsigned integer values are widened to uint64. + UINT64 = 3; + + // Double type. + // + // 32-bit float values are widened to double values. + DOUBLE = 4; + + // String type. + STRING = 5; + + // Bytes type. + BYTES = 6; + } + + // Well-known protobuf types treated with first-class support in CEL. + enum WellKnownType { + // Unspecified type. + WELL_KNOWN_TYPE_UNSPECIFIED = 0; + + // Well-known protobuf.Any type. + // + // Any types are a polymorphic message type. During type-checking they are + // treated like `DYN` types, but at runtime they are resolved to a specific + // message type specified at evaluation time. + ANY = 1; + + // Well-known protobuf.Timestamp type, internally referenced as `timestamp`. + TIMESTAMP = 2; + + // Well-known protobuf.Duration type, internally referenced as `duration`. + DURATION = 3; + } + + // The kind of type. + oneof type_kind { + // Dynamic type. + google.protobuf.Empty dyn = 1; + + // Null value. + google.protobuf.NullValue null = 2; + + // Primitive types: `true`, `1u`, `-2.0`, `'string'`, `b'bytes'`. + PrimitiveType primitive = 3; + + // Wrapper of a primitive type, e.g. `google.protobuf.Int64Value`. + PrimitiveType wrapper = 4; + + // Well-known protobuf type such as `google.protobuf.Timestamp`. + WellKnownType well_known = 5; + + // Parameterized list with elements of `list_type`, e.g. `list`. + ListType list_type = 6; + + // Parameterized map with typed keys and values. + MapType map_type = 7; + + // Function type. + FunctionType function = 8; + + // Protocol buffer message type. + // + // The `message_type` string specifies the qualified message type name. For + // example, `google.type.PhoneNumber`. + string message_type = 9; + + // Type param type. + // + // The `type_param` string specifies the type parameter name, e.g. `list` + // would be a `list_type` whose element type was a `type_param` type + // named `E`. + string type_param = 10; + + // Type type. + // + // The `type` value specifies the target type. e.g. int is type with a + // target type of `Primitive.INT64`. + Type type = 11; + + // Error type. + // + // During type-checking if an expression is an error, its type is propagated + // as the `ERROR` type. This permits the type-checker to discover other + // errors present in the expression. + google.protobuf.Empty error = 12; + + // Abstract, application defined type. + // + // An abstract type has no accessible field names, and it can only be + // inspected via helper / member functions. + AbstractType abstract_type = 14; + } +} + +// Represents a declaration of a named value or function. +// +// A declaration is part of the contract between the expression, the agent +// evaluating that expression, and the caller requesting evaluation. +message Decl { + // Identifier declaration which specifies its type and optional `Expr` value. + // + // An identifier without a value is a declaration that must be provided at + // evaluation time. An identifier with a value should resolve to a constant, + // but may be used in conjunction with other identifiers bound at evaluation + // time. + message IdentDecl { + // Required. The type of the identifier. + Type type = 1; + + // The constant value of the identifier. If not specified, the identifier + // must be supplied at evaluation time. + Constant value = 2; + + // Documentation string for the identifier. + string doc = 3; + } + + // Function declaration specifies one or more overloads which indicate the + // function's parameter types and return type. + // + // Functions have no observable side-effects (there may be side-effects like + // logging which are not observable from CEL). + message FunctionDecl { + // An overload indicates a function's parameter types and return type, and + // may optionally include a function body described in terms of + // [Expr][cel.expr.Expr] values. + // + // Functions overloads are declared in either a function or method + // call-style. For methods, the `params[0]` is the expected type of the + // target receiver. + // + // Overloads must have non-overlapping argument types after erasure of all + // parameterized type variables (similar as type erasure in Java). + message Overload { + // Required. Globally unique overload name of the function which reflects + // the function name and argument types. + // + // This will be used by a [Reference][cel.expr.Reference] to + // indicate the `overload_id` that was resolved for the function `name`. + string overload_id = 1; + + // List of function parameter [Type][cel.expr.Type] values. + // + // Param types are disjoint after generic type parameters have been + // replaced with the type `DYN`. Since the `DYN` type is compatible with + // any other type, this means that if `A` is a type parameter, the + // function types `int` and `int` are not disjoint. Likewise, + // `map` is not disjoint from `map`. + // + // When the `result_type` of a function is a generic type param, the + // type param name also appears as the `type` of on at least one params. + repeated Type params = 2; + + // The type param names associated with the function declaration. + // + // For example, `function ex(K key, map map) : V` would yield + // the type params of `K, V`. + repeated string type_params = 3; + + // Required. The result type of the function. For example, the operator + // `string.isEmpty()` would have `result_type` of `kind: BOOL`. + Type result_type = 4; + + // Whether the function is to be used in a method call-style `x.f(...)` + // of a function call-style `f(x, ...)`. + // + // For methods, the first parameter declaration, `params[0]` is the + // expected type of the target receiver. + bool is_instance_function = 5; + + // Documentation string for the overload. + string doc = 6; + } + + // Required. List of function overloads, must contain at least one overload. + repeated Overload overloads = 1; + } + + // The fully qualified name of the declaration. + // + // Declarations are organized in containers and this represents the full path + // to the declaration in its container, as in `cel.expr.Decl`. + // + // Declarations used as + // [FunctionDecl.Overload][cel.expr.Decl.FunctionDecl.Overload] + // parameters may or may not have a name depending on whether the overload is + // function declaration or a function definition containing a result + // [Expr][cel.expr.Expr]. + string name = 1; + + // Required. The declaration kind. + oneof decl_kind { + // Identifier declaration. + IdentDecl ident = 2; + + // Function declaration. + FunctionDecl function = 3; + } +} + +// Describes a resolved reference to a declaration. +message Reference { + // The fully qualified name of the declaration. + string name = 1; + + // For references to functions, this is a list of `Overload.overload_id` + // values which match according to typing rules. + // + // If the list has more than one element, overload resolution among the + // presented candidates must happen at runtime because of dynamic types. The + // type checker attempts to narrow down this list as much as possible. + // + // Empty if this is not a reference to a + // [Decl.FunctionDecl][cel.expr.Decl.FunctionDecl]. + repeated string overload_id = 3; + + // For references to constants, this may contain the value of the + // constant if known at compile time. + Constant value = 4; +} \ No newline at end of file diff --git a/cab-token-generator/proto/cel/expr/syntax.proto b/cab-token-generator/proto/cel/expr/syntax.proto new file mode 100644 index 000000000..bba713f12 --- /dev/null +++ b/cab-token-generator/proto/cel/expr/syntax.proto @@ -0,0 +1,416 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package cel.expr; + +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option cc_enable_arenas = true; +option go_package = "cel.dev/expr"; +option java_multiple_files = true; +option java_outer_classname = "SyntaxProto"; +option java_package = "dev.cel.expr"; + +// A representation of the abstract syntax of the Common Expression Language. + +// An expression together with source information as returned by the parser. +message ParsedExpr { + // The parsed expression. + Expr expr = 2; + + // The source info derived from input that generated the parsed `expr`. + SourceInfo source_info = 3; +} + +// An abstract representation of a common expression. +// +// Expressions are abstractly represented as a collection of identifiers, +// select statements, function calls, literals, and comprehensions. All +// operators with the exception of the '.' operator are modelled as function +// calls. This makes it easy to represent new operators into the existing AST. +// +// All references within expressions must resolve to a +// [Decl][cel.expr.Decl] provided at type-check for an expression to be +// valid. A reference may either be a bare identifier `name` or a qualified +// identifier `google.api.name`. References may either refer to a value or a +// function declaration. +// +// For example, the expression `google.api.name.startsWith('expr')` references +// the declaration `google.api.name` within a +// [Expr.Select][cel.expr.Expr.Select] expression, and the function +// declaration `startsWith`. +message Expr { + // An identifier expression. e.g. `request`. + message Ident { + // Required. Holds a single, unqualified identifier, possibly preceded by a + // '.'. + // + // Qualified names are represented by the + // [Expr.Select][cel.expr.Expr.Select] expression. + string name = 1; + } + + // A field selection expression. e.g. `request.auth`. + message Select { + // Required. The target of the selection expression. + // + // For example, in the select expression `request.auth`, the `request` + // portion of the expression is the `operand`. + Expr operand = 1; + + // Required. The name of the field to select. + // + // For example, in the select expression `request.auth`, the `auth` portion + // of the expression would be the `field`. + string field = 2; + + // Whether the select is to be interpreted as a field presence test. + // + // This results from the macro `has(request.auth)`. + bool test_only = 3; + } + + // A call expression, including calls to predefined functions and operators. + // + // For example, `value == 10`, `size(map_value)`. + message Call { + // The target of an method call-style expression. For example, `x` in + // `x.f()`. + Expr target = 1; + + // Required. The name of the function or method being called. + string function = 2; + + // The arguments. + repeated Expr args = 3; + } + + // A list creation expression. + // + // Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g. + // `dyn([1, 'hello', 2.0])` + message CreateList { + // The elements part of the list. + repeated Expr elements = 1; + + // The indices within the elements list which are marked as optional + // elements. + // + // When an optional-typed value is present, the value it contains + // is included in the list. If the optional-typed value is absent, the list + // element is omitted from the CreateList result. + repeated int32 optional_indices = 2; + } + + // A map or message creation expression. + // + // Maps are constructed as `{'key_name': 'value'}`. Message construction is + // similar, but prefixed with a type name and composed of field ids: + // `types.MyType{field_id: 'value'}`. + message CreateStruct { + // Represents an entry. + message Entry { + // Required. An id assigned to this node by the parser which is unique + // in a given expression tree. This is used to associate type + // information and other attributes to the node. + int64 id = 1; + + // The `Entry` key kinds. + oneof key_kind { + // The field key for a message creator statement. + string field_key = 2; + + // The key expression for a map creation statement. + Expr map_key = 3; + } + + // Required. The value assigned to the key. + // + // If the optional_entry field is true, the expression must resolve to an + // optional-typed value. If the optional value is present, the key will be + // set; however, if the optional value is absent, the key will be unset. + Expr value = 4; + + // Whether the key-value pair is optional. + bool optional_entry = 5; + } + + // The type name of the message to be created, empty when creating map + // literals. + string message_name = 1; + + // The entries in the creation expression. + repeated Entry entries = 2; + } + + // A comprehension expression applied to a list or map. + // + // Comprehensions are not part of the core syntax, but enabled with macros. + // A macro matches a specific call signature within a parsed AST and replaces + // the call with an alternate AST block. Macro expansion happens at parse + // time. + // + // The following macros are supported within CEL: + // + // Aggregate type macros may be applied to all elements in a list or all keys + // in a map: + // + // * `all`, `exists`, `exists_one` - test a predicate expression against + // the inputs and return `true` if the predicate is satisfied for all, + // any, or only one value `list.all(x, x < 10)`. + // * `filter` - test a predicate expression against the inputs and return + // the subset of elements which satisfy the predicate: + // `payments.filter(p, p > 1000)`. + // * `map` - apply an expression to all elements in the input and return the + // output aggregate type: `[1, 2, 3].map(i, i * i)`. + // + // The `has(m.x)` macro tests whether the property `x` is present in struct + // `m`. The semantics of this macro depend on the type of `m`. For proto2 + // messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the + // macro tests whether the property is set to its default. For map and struct + // types, the macro tests whether the property `x` is defined on `m`. + // + // Comprehensions for the standard environment macros evaluation can be best + // visualized as the following pseudocode: + // + // ``` + // let `accu_var` = `accu_init` + // for (let `iter_var` in `iter_range`) { + // if (!`loop_condition`) { + // break + // } + // `accu_var` = `loop_step` + // } + // return `result` + // ``` + // + // Comprehensions for the optional V2 macros which support map-to-map + // translation differ slightly from the standard environment macros in that + // they expose both the key or index in addition to the value for each list + // or map entry: + // + // ``` + // let `accu_var` = `accu_init` + // for (let `iter_var`, `iter_var2` in `iter_range`) { + // if (!`loop_condition`) { + // break + // } + // `accu_var` = `loop_step` + // } + // return `result` + // ``` + message Comprehension { + // The name of the first iteration variable. + // For the single iteration variable macros, when iter_range is a list, this + // variable is the list element and when the iter_range is a map, this + // variable is the map key. + string iter_var = 1; + + // The name of the second iteration variable, empty if not set. + // This field is only set for comprehension v2 macros. + string iter_var2 = 8; + + // The range over which the comprehension iterates. + Expr iter_range = 2; + + // The name of the variable used for accumulation of the result. + string accu_var = 3; + + // The initial value of the accumulator. + Expr accu_init = 4; + + // An expression which can contain iter_var, iter_var2, and accu_var. + // + // Returns false when the result has been computed and may be used as + // a hint to short-circuit the remainder of the comprehension. + Expr loop_condition = 5; + + // An expression which can contain iter_var, iter_var2, and accu_var. + // + // Computes the next value of accu_var. + Expr loop_step = 6; + + // An expression which can contain accu_var. + // + // Computes the result. + Expr result = 7; + } + + // Required. An id assigned to this node by the parser which is unique in a + // given expression tree. This is used to associate type information and other + // attributes to a node in the parse tree. + int64 id = 2; + + // Required. Variants of expressions. + oneof expr_kind { + // A constant expression. + Constant const_expr = 3; + + // An identifier expression. + Ident ident_expr = 4; + + // A field selection expression, e.g. `request.auth`. + Select select_expr = 5; + + // A call expression, including calls to predefined functions and operators. + Call call_expr = 6; + + // A list creation expression. + CreateList list_expr = 7; + + // A map or message creation expression. + CreateStruct struct_expr = 8; + + // A comprehension expression. + Comprehension comprehension_expr = 9; + } +} + +// Represents a primitive literal. +// +// Named 'Constant' here for backwards compatibility. +// +// This is similar as the primitives supported in the well-known type +// `google.protobuf.Value`, but richer so it can represent CEL's full range of +// primitives. +// +// Lists and structs are not included as constants as these aggregate types may +// contain [Expr][cel.expr.Expr] elements which require evaluation and +// are thus not constant. +// +// Examples of constants include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`, +// `true`, `null`. +message Constant { + // Required. The valid constant kinds. + oneof constant_kind { + // null value. + google.protobuf.NullValue null_value = 1; + + // boolean value. + bool bool_value = 2; + + // int64 value. + int64 int64_value = 3; + + // uint64 value. + uint64 uint64_value = 4; + + // double value. + double double_value = 5; + + // string value. + string string_value = 6; + + // bytes value. + bytes bytes_value = 7; + + // protobuf.Duration value. + // + // Deprecated: duration is no longer considered a builtin cel type. + google.protobuf.Duration duration_value = 8 [deprecated = true]; + + // protobuf.Timestamp value. + // + // Deprecated: timestamp is no longer considered a builtin cel type. + google.protobuf.Timestamp timestamp_value = 9 [deprecated = true]; + } +} + +// Source information collected at parse time. +message SourceInfo { + // The syntax version of the source, e.g. `cel1`. + string syntax_version = 1; + + // The location name. All position information attached to an expression is + // relative to this location. + // + // The location could be a file, UI element, or similar. For example, + // `acme/app/AnvilPolicy.cel`. + string location = 2; + + // Monotonically increasing list of code point offsets where newlines + // `\n` appear. + // + // The line number of a given position is the index `i` where for a given + // `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The + // column may be derived from `id_positions[id] - line_offsets[i]`. + repeated int32 line_offsets = 3; + + // A map from the parse node id (e.g. `Expr.id`) to the code point offset + // within the source. + map positions = 4; + + // A map from the parse node id where a macro replacement was made to the + // call `Expr` that resulted in a macro expansion. + // + // For example, `has(value.field)` is a function call that is replaced by a + // `test_only` field selection in the AST. Likewise, the call + // `list.exists(e, e > 10)` translates to a comprehension expression. The key + // in the map corresponds to the expression id of the expanded macro, and the + // value is the call `Expr` that was replaced. + map macro_calls = 5; + + // A list of tags for extensions that were used while parsing or type checking + // the source expression. For example, optimizations that require special + // runtime support may be specified. + // + // These are used to check feature support between components in separate + // implementations. This can be used to either skip redundant work or + // report an error if the extension is unsupported. + repeated Extension extensions = 6; + + // An extension that was requested for the source expression. + message Extension { + // Version + message Version { + // Major version changes indicate different required support level from + // the required components. + int64 major = 1; + // Minor version changes must not change the observed behavior from + // existing implementations, but may be provided informationally. + int64 minor = 2; + } + + // CEL component specifier. + enum Component { + // Unspecified, default. + COMPONENT_UNSPECIFIED = 0; + // Parser. Converts a CEL string to an AST. + COMPONENT_PARSER = 1; + // Type checker. Checks that references in an AST are defined and types + // agree. + COMPONENT_TYPE_CHECKER = 2; + // Runtime. Evaluates a parsed and optionally checked CEL AST against a + // context. + COMPONENT_RUNTIME = 3; + } + + // Identifier for the extension. Example: constant_folding + string id = 1; + + // If set, the listed components must understand the extension for the + // expression to evaluate correctly. + // + // This field has set semantics, repeated values should be deduplicated. + repeated Component affected_components = 2; + + // Version info. May be skipped if it isn't meaningful for the extension. + // (for example constant_folding might always be v0.0). + Version version = 3; + } +} \ No newline at end of file diff --git a/cab-token-generator/proto/client_side_access_boundary.proto b/cab-token-generator/proto/client_side_access_boundary.proto new file mode 100644 index 000000000..9a0bc09a2 --- /dev/null +++ b/cab-token-generator/proto/client_side_access_boundary.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; + +package com.google.auth.credentialaccessboundary.proto; + +import "cel/expr/syntax.proto"; + +option java_multiple_files = false; +option java_package = "com.google.auth.credentialaccessboundary.protobuf"; +option java_outer_classname = "ClientSideAccessBoundaryProto"; + + +message ClientSideAccessBoundaryRule { + string available_resource = 1; + + repeated string available_permissions = 2; + + cel.expr.Expr compiled_availability_condition = 4; +} + +message ClientSideAccessBoundary { + repeated ClientSideAccessBoundaryRule access_boundary_rules = 1; +}