1 /* 2 * Copyright 2017 The gRPC Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package io.grpc.internal; 18 19 import io.grpc.Attributes; 20 import io.grpc.EquivalentAddressGroup; 21 import io.grpc.Grpc; 22 import io.grpc.SecurityLevel; 23 24 /** 25 * Special attributes that are only useful to gRPC. 26 */ 27 public final class GrpcAttributes { 28 /** 29 * The security level of the transport. If it's not present, {@link SecurityLevel#NONE} should be 30 * assumed. 31 */ 32 @Grpc.TransportAttr 33 public static final Attributes.Key<SecurityLevel> ATTR_SECURITY_LEVEL = 34 Attributes.Key.create("io.grpc.internal.GrpcAttributes.securityLevel"); 35 36 /** 37 * Attribute key for the attributes of the {@link EquivalentAddressGroup} ({@link 38 * EquivalentAddressGroup#getAttributes}) that the transport's server address is from. This is a 39 * client-side-only transport attribute, and available right after the transport is started. 40 */ 41 @Grpc.TransportAttr 42 public static final Attributes.Key<Attributes> ATTR_CLIENT_EAG_ATTRS = 43 Attributes.Key.create("io.grpc.internal.GrpcAttributes.clientEagAttrs"); 44 GrpcAttributes()45 private GrpcAttributes() {} 46 } 47