Code generated by protoc-gen-go. DO NOT EDIT. source: grpc/gcp/handshaker.proto

package grpc_gcp

import (
	context 
	fmt 
	proto 
	grpc 
	codes 
	status 
	math 
)
Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
This is a compile-time assertion to ensure that this generated file is compatible with the proto package it is being compiled against. A compilation error at this line likely means your copy of the proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type HandshakeProtocol int32

Default value.
TLS handshake protocol.
Application Layer Transport Security handshake protocol.
	HandshakeProtocol_ALTS HandshakeProtocol = 2
)

var HandshakeProtocol_name = map[int32]string{
	0: "HANDSHAKE_PROTOCOL_UNSPECIFIED",
	1: "TLS",
	2: "ALTS",
}

var HandshakeProtocol_value = map[string]int32{
	"HANDSHAKE_PROTOCOL_UNSPECIFIED": 0,
	"TLS":                            1,
	"ALTS":                           2,
}

func ( HandshakeProtocol) () string {
	return proto.EnumName(HandshakeProtocol_name, int32())
}

func (HandshakeProtocol) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{0}
}

type NetworkProtocol int32

const (
	NetworkProtocol_NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol = 0
	NetworkProtocol_TCP                          NetworkProtocol = 1
	NetworkProtocol_UDP                          NetworkProtocol = 2
)

var NetworkProtocol_name = map[int32]string{
	0: "NETWORK_PROTOCOL_UNSPECIFIED",
	1: "TCP",
	2: "UDP",
}

var NetworkProtocol_value = map[string]int32{
	"NETWORK_PROTOCOL_UNSPECIFIED": 0,
	"TCP":                          1,
	"UDP":                          2,
}

func ( NetworkProtocol) () string {
	return proto.EnumName(NetworkProtocol_name, int32())
}

func (NetworkProtocol) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{1}
}

IP address. It should contain an IPv4 or IPv6 string literal, e.g. "192.168.0.1" or "2001:db8::1".
Port number.
Network protocol (e.g., TCP, UDP) associated with this endpoint.
	Protocol             NetworkProtocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=grpc.gcp.NetworkProtocol" json:"protocol,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func ( *Endpoint) ()         { * = Endpoint{} }
func ( *Endpoint) () string { return proto.CompactTextString() }
func (*Endpoint) ()    {}
func (*Endpoint) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{0}
}

func ( *Endpoint) ( []byte) error {
	return xxx_messageInfo_Endpoint.Unmarshal(, )
}
func ( *Endpoint) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_Endpoint.Marshal(, , )
}
func ( *Endpoint) ( proto.Message) {
	xxx_messageInfo_Endpoint.Merge(, )
}
func ( *Endpoint) () int {
	return xxx_messageInfo_Endpoint.Size()
}
func ( *Endpoint) () {
	xxx_messageInfo_Endpoint.DiscardUnknown()
}

var xxx_messageInfo_Endpoint proto.InternalMessageInfo

func ( *Endpoint) () string {
	if  != nil {
		return .IpAddress
	}
	return ""
}

func ( *Endpoint) () int32 {
	if  != nil {
		return .Port
	}
	return 0
}

func ( *Endpoint) () NetworkProtocol {
	if  != nil {
		return .Protocol
	}
	return NetworkProtocol_NETWORK_PROTOCOL_UNSPECIFIED
}

Types that are valid to be assigned to IdentityOneof: *Identity_ServiceAccount *Identity_Hostname
Additional attributes of the identity.
	Attributes           map[string]string `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func ( *Identity) ()         { * = Identity{} }
func ( *Identity) () string { return proto.CompactTextString() }
func (*Identity) ()    {}
func (*Identity) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{1}
}

func ( *Identity) ( []byte) error {
	return xxx_messageInfo_Identity.Unmarshal(, )
}
func ( *Identity) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_Identity.Marshal(, , )
}
func ( *Identity) ( proto.Message) {
	xxx_messageInfo_Identity.Merge(, )
}
func ( *Identity) () int {
	return xxx_messageInfo_Identity.Size()
}
func ( *Identity) () {
	xxx_messageInfo_Identity.DiscardUnknown()
}

var xxx_messageInfo_Identity proto.InternalMessageInfo

type isIdentity_IdentityOneof interface {
	isIdentity_IdentityOneof()
}

type Identity_ServiceAccount struct {
	ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3,oneof"`
}

type Identity_Hostname struct {
	Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3,oneof"`
}

func (*Identity_ServiceAccount) () {}

func (*Identity_Hostname) () {}

func ( *Identity) () isIdentity_IdentityOneof {
	if  != nil {
		return .IdentityOneof
	}
	return nil
}

func ( *Identity) () string {
	if ,  := .GetIdentityOneof().(*Identity_ServiceAccount);  {
		return .ServiceAccount
	}
	return ""
}

func ( *Identity) () string {
	if ,  := .GetIdentityOneof().(*Identity_Hostname);  {
		return .Hostname
	}
	return ""
}

func ( *Identity) () map[string]string {
	if  != nil {
		return .Attributes
	}
	return nil
}
XXX_OneofWrappers is for the internal use of the proto package.
func (*Identity) () []interface{} {
	return []interface{}{
		(*Identity_ServiceAccount)(nil),
		(*Identity_Hostname)(nil),
	}
}

Handshake security protocol requested by the client.
The application protocols supported by the client, e.g., "h2" (for http2), "grpc".
The record protocols supported by the client, e.g., "ALTSRP_GCM_AES128".
(Optional) Describes which server identities are acceptable by the client. If target identities are provided and none of them matches the peer identity of the server, handshake will fail.
(Optional) Application may specify a local identity. Otherwise, the handshaker chooses a default local identity.
(Optional) Local endpoint information of the connection to the server, such as local IP address, port number, and network protocol.
(Optional) Endpoint information of the remote server, such as IP address, port number, and network protocol.
(Optional) If target name is provided, a secure naming check is performed to verify that the peer authenticated identity is indeed authorized to run the target name.
(Optional) RPC protocol versions supported by the client.
(Optional) Maximum frame size supported by the client.
	MaxFrameSize         uint32   `protobuf:"varint,10,opt,name=max_frame_size,json=maxFrameSize,proto3" json:"max_frame_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func ( *StartClientHandshakeReq) ()         { * = StartClientHandshakeReq{} }
func ( *StartClientHandshakeReq) () string { return proto.CompactTextString() }
func (*StartClientHandshakeReq) ()    {}
func (*StartClientHandshakeReq) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{2}
}

func ( *StartClientHandshakeReq) ( []byte) error {
	return xxx_messageInfo_StartClientHandshakeReq.Unmarshal(, )
}
func ( *StartClientHandshakeReq) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_StartClientHandshakeReq.Marshal(, , )
}
func ( *StartClientHandshakeReq) ( proto.Message) {
	xxx_messageInfo_StartClientHandshakeReq.Merge(, )
}
func ( *StartClientHandshakeReq) () int {
	return xxx_messageInfo_StartClientHandshakeReq.Size()
}
func ( *StartClientHandshakeReq) () {
	xxx_messageInfo_StartClientHandshakeReq.DiscardUnknown()
}

var xxx_messageInfo_StartClientHandshakeReq proto.InternalMessageInfo

func ( *StartClientHandshakeReq) () HandshakeProtocol {
	if  != nil {
		return .HandshakeSecurityProtocol
	}
	return HandshakeProtocol_HANDSHAKE_PROTOCOL_UNSPECIFIED
}

func ( *StartClientHandshakeReq) () []string {
	if  != nil {
		return .ApplicationProtocols
	}
	return nil
}

func ( *StartClientHandshakeReq) () []string {
	if  != nil {
		return .RecordProtocols
	}
	return nil
}

func ( *StartClientHandshakeReq) () []*Identity {
	if  != nil {
		return .TargetIdentities
	}
	return nil
}

func ( *StartClientHandshakeReq) () *Identity {
	if  != nil {
		return .LocalIdentity
	}
	return nil
}

func ( *StartClientHandshakeReq) () *Endpoint {
	if  != nil {
		return .LocalEndpoint
	}
	return nil
}

func ( *StartClientHandshakeReq) () *Endpoint {
	if  != nil {
		return .RemoteEndpoint
	}
	return nil
}

func ( *StartClientHandshakeReq) () string {
	if  != nil {
		return .TargetName
	}
	return ""
}

func ( *StartClientHandshakeReq) () *RpcProtocolVersions {
	if  != nil {
		return .RpcVersions
	}
	return nil
}

func ( *StartClientHandshakeReq) () uint32 {
	if  != nil {
		return .MaxFrameSize
	}
	return 0
}

The record protocols supported by the server, e.g., "ALTSRP_GCM_AES128".
(Optional) A list of local identities supported by the server, if specified. Otherwise, the handshaker chooses a default local identity.
	LocalIdentities      []*Identity `protobuf:"bytes,2,rep,name=local_identities,json=localIdentities,proto3" json:"local_identities,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func ( *ServerHandshakeParameters) ()         { * = ServerHandshakeParameters{} }
func ( *ServerHandshakeParameters) () string { return proto.CompactTextString() }
func (*ServerHandshakeParameters) ()    {}
func (*ServerHandshakeParameters) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{3}
}

func ( *ServerHandshakeParameters) ( []byte) error {
	return xxx_messageInfo_ServerHandshakeParameters.Unmarshal(, )
}
func ( *ServerHandshakeParameters) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_ServerHandshakeParameters.Marshal(, , )
}
func ( *ServerHandshakeParameters) ( proto.Message) {
	xxx_messageInfo_ServerHandshakeParameters.Merge(, )
}
func ( *ServerHandshakeParameters) () int {
	return xxx_messageInfo_ServerHandshakeParameters.Size()
}
func ( *ServerHandshakeParameters) () {
	xxx_messageInfo_ServerHandshakeParameters.DiscardUnknown()
}

var xxx_messageInfo_ServerHandshakeParameters proto.InternalMessageInfo

func ( *ServerHandshakeParameters) () []string {
	if  != nil {
		return .RecordProtocols
	}
	return nil
}

func ( *ServerHandshakeParameters) () []*Identity {
	if  != nil {
		return .LocalIdentities
	}
	return nil
}

The application protocols supported by the server, e.g., "h2" (for http2), "grpc".
Handshake parameters (record protocols and local identities supported by the server) mapped by the handshake protocol. Each handshake security protocol (e.g., TLS or ALTS) has its own set of record protocols and local identities. Since protobuf does not support enum as key to the map, the key to handshake_parameters is the integer value of HandshakeProtocol enum.
Bytes in out_frames returned from the peer's HandshakerResp. It is possible that the peer's out_frames are split into multiple HandshakReq messages.
(Optional) Local endpoint information of the connection to the client, such as local IP address, port number, and network protocol.
(Optional) Endpoint information of the remote client, such as IP address, port number, and network protocol.
(Optional) RPC protocol versions supported by the server.
(Optional) Maximum frame size supported by the server.
	MaxFrameSize         uint32   `protobuf:"varint,7,opt,name=max_frame_size,json=maxFrameSize,proto3" json:"max_frame_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func ( *StartServerHandshakeReq) ()         { * = StartServerHandshakeReq{} }
func ( *StartServerHandshakeReq) () string { return proto.CompactTextString() }
func (*StartServerHandshakeReq) ()    {}
func (*StartServerHandshakeReq) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{4}
}

func ( *StartServerHandshakeReq) ( []byte) error {
	return xxx_messageInfo_StartServerHandshakeReq.Unmarshal(, )
}
func ( *StartServerHandshakeReq) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_StartServerHandshakeReq.Marshal(, , )
}
func ( *StartServerHandshakeReq) ( proto.Message) {
	xxx_messageInfo_StartServerHandshakeReq.Merge(, )
}
func ( *StartServerHandshakeReq) () int {
	return xxx_messageInfo_StartServerHandshakeReq.Size()
}
func ( *StartServerHandshakeReq) () {
	xxx_messageInfo_StartServerHandshakeReq.DiscardUnknown()
}

var xxx_messageInfo_StartServerHandshakeReq proto.InternalMessageInfo

func ( *StartServerHandshakeReq) () []string {
	if  != nil {
		return .ApplicationProtocols
	}
	return nil
}

func ( *StartServerHandshakeReq) () map[int32]*ServerHandshakeParameters {
	if  != nil {
		return .HandshakeParameters
	}
	return nil
}

func ( *StartServerHandshakeReq) () []byte {
	if  != nil {
		return .InBytes
	}
	return nil
}

func ( *StartServerHandshakeReq) () *Endpoint {
	if  != nil {
		return .LocalEndpoint
	}
	return nil
}

func ( *StartServerHandshakeReq) () *Endpoint {
	if  != nil {
		return .RemoteEndpoint
	}
	return nil
}

func ( *StartServerHandshakeReq) () *RpcProtocolVersions {
	if  != nil {
		return .RpcVersions
	}
	return nil
}

func ( *StartServerHandshakeReq) () uint32 {
	if  != nil {
		return .MaxFrameSize
	}
	return 0
}

Bytes in out_frames returned from the peer's HandshakerResp. It is possible that the peer's out_frames are split into multiple NextHandshakerMessageReq messages.
Types that are valid to be assigned to ReqOneof: *HandshakerReq_ClientStart *HandshakerReq_ServerStart *HandshakerReq_Next
	ReqOneof             isHandshakerReq_ReqOneof `protobuf_oneof:"req_oneof"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func ( *HandshakerReq) ()         { * = HandshakerReq{} }
func ( *HandshakerReq) () string { return proto.CompactTextString() }
func (*HandshakerReq) ()    {}
func (*HandshakerReq) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{6}
}

func ( *HandshakerReq) ( []byte) error {
	return xxx_messageInfo_HandshakerReq.Unmarshal(, )
}
func ( *HandshakerReq) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_HandshakerReq.Marshal(, , )
}
func ( *HandshakerReq) ( proto.Message) {
	xxx_messageInfo_HandshakerReq.Merge(, )
}
func ( *HandshakerReq) () int {
	return xxx_messageInfo_HandshakerReq.Size()
}
func ( *HandshakerReq) () {
	xxx_messageInfo_HandshakerReq.DiscardUnknown()
}

var xxx_messageInfo_HandshakerReq proto.InternalMessageInfo

type isHandshakerReq_ReqOneof interface {
	isHandshakerReq_ReqOneof()
}

type HandshakerReq_ClientStart struct {
	ClientStart *StartClientHandshakeReq `protobuf:"bytes,1,opt,name=client_start,json=clientStart,proto3,oneof"`
}

type HandshakerReq_ServerStart struct {
	ServerStart *StartServerHandshakeReq `protobuf:"bytes,2,opt,name=server_start,json=serverStart,proto3,oneof"`
}

type HandshakerReq_Next struct {
	Next *NextHandshakeMessageReq `protobuf:"bytes,3,opt,name=next,proto3,oneof"`
}

func (*HandshakerReq_ClientStart) () {}

func (*HandshakerReq_ServerStart) () {}

func (*HandshakerReq_Next) () {}

func ( *HandshakerReq) () isHandshakerReq_ReqOneof {
	if  != nil {
		return .ReqOneof
	}
	return nil
}

func ( *HandshakerReq) () *StartClientHandshakeReq {
	if ,  := .GetReqOneof().(*HandshakerReq_ClientStart);  {
		return .ClientStart
	}
	return nil
}

func ( *HandshakerReq) () *StartServerHandshakeReq {
	if ,  := .GetReqOneof().(*HandshakerReq_ServerStart);  {
		return .ServerStart
	}
	return nil
}

func ( *HandshakerReq) () *NextHandshakeMessageReq {
	if ,  := .GetReqOneof().(*HandshakerReq_Next);  {
		return .Next
	}
	return nil
}
XXX_OneofWrappers is for the internal use of the proto package.
func (*HandshakerReq) () []interface{} {
	return []interface{}{
		(*HandshakerReq_ClientStart)(nil),
		(*HandshakerReq_ServerStart)(nil),
		(*HandshakerReq_Next)(nil),
	}
}

The application protocol negotiated for this connection.
The record protocol negotiated for this connection.
Cryptographic key data. The key data may be more than the key length required for the record protocol, thus the client of the handshaker service needs to truncate the key data into the right key length.
The authenticated identity of the peer.
The local identity used in the handshake.
Indicate whether the handshaker service client should keep the channel between the handshaker service open, e.g., in order to handle post-handshake messages in the future.
The RPC protocol versions supported by the peer.
The maximum frame size of the peer.
	MaxFrameSize         uint32   `protobuf:"varint,8,opt,name=max_frame_size,json=maxFrameSize,proto3" json:"max_frame_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func ( *HandshakerResult) ()         { * = HandshakerResult{} }
func ( *HandshakerResult) () string { return proto.CompactTextString() }
func (*HandshakerResult) ()    {}
func (*HandshakerResult) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{7}
}

func ( *HandshakerResult) ( []byte) error {
	return xxx_messageInfo_HandshakerResult.Unmarshal(, )
}
func ( *HandshakerResult) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_HandshakerResult.Marshal(, , )
}
func ( *HandshakerResult) ( proto.Message) {
	xxx_messageInfo_HandshakerResult.Merge(, )
}
func ( *HandshakerResult) () int {
	return xxx_messageInfo_HandshakerResult.Size()
}
func ( *HandshakerResult) () {
	xxx_messageInfo_HandshakerResult.DiscardUnknown()
}

var xxx_messageInfo_HandshakerResult proto.InternalMessageInfo

func ( *HandshakerResult) () string {
	if  != nil {
		return .ApplicationProtocol
	}
	return ""
}

func ( *HandshakerResult) () string {
	if  != nil {
		return .RecordProtocol
	}
	return ""
}

func ( *HandshakerResult) () []byte {
	if  != nil {
		return .KeyData
	}
	return nil
}

func ( *HandshakerResult) () *Identity {
	if  != nil {
		return .PeerIdentity
	}
	return nil
}

func ( *HandshakerResult) () *Identity {
	if  != nil {
		return .LocalIdentity
	}
	return nil
}

func ( *HandshakerResult) () bool {
	if  != nil {
		return .KeepChannelOpen
	}
	return false
}

func ( *HandshakerResult) () *RpcProtocolVersions {
	if  != nil {
		return .PeerRpcVersions
	}
	return nil
}

func ( *HandshakerResult) () uint32 {
	if  != nil {
		return .MaxFrameSize
	}
	return 0
}

The status code. This could be the gRPC status code.
The status details.
	Details              string   `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func ( *HandshakerStatus) ()         { * = HandshakerStatus{} }
func ( *HandshakerStatus) () string { return proto.CompactTextString() }
func (*HandshakerStatus) ()    {}
func (*HandshakerStatus) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{8}
}

func ( *HandshakerStatus) ( []byte) error {
	return xxx_messageInfo_HandshakerStatus.Unmarshal(, )
}
func ( *HandshakerStatus) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_HandshakerStatus.Marshal(, , )
}
func ( *HandshakerStatus) ( proto.Message) {
	xxx_messageInfo_HandshakerStatus.Merge(, )
}
func ( *HandshakerStatus) () int {
	return xxx_messageInfo_HandshakerStatus.Size()
}
func ( *HandshakerStatus) () {
	xxx_messageInfo_HandshakerStatus.DiscardUnknown()
}

var xxx_messageInfo_HandshakerStatus proto.InternalMessageInfo

func ( *HandshakerStatus) () uint32 {
	if  != nil {
		return .Code
	}
	return 0
}

func ( *HandshakerStatus) () string {
	if  != nil {
		return .Details
	}
	return ""
}

Frames to be given to the peer for the NextHandshakeMessageReq. May be empty if no out_frames have to be sent to the peer or if in_bytes in the HandshakerReq are incomplete. All the non-empty out frames must be sent to the peer even if the handshaker status is not OK as these frames may contain the alert frames.
Number of bytes in the in_bytes consumed by the handshaker. It is possible that part of in_bytes in HandshakerReq was unrelated to the handshake process.
This is set iff the handshake was successful. out_frames may still be set to frames that needs to be forwarded to the peer.
Status of the handshaker.
	Status               *HandshakerStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func ( *HandshakerResp) ()         { * = HandshakerResp{} }
func ( *HandshakerResp) () string { return proto.CompactTextString() }
func (*HandshakerResp) ()    {}
func (*HandshakerResp) () ([]byte, []int) {
	return fileDescriptor_54c074f40c7c7e99, []int{9}
}

func ( *HandshakerResp) ( []byte) error {
	return xxx_messageInfo_HandshakerResp.Unmarshal(, )
}
func ( *HandshakerResp) ( []byte,  bool) ([]byte, error) {
	return xxx_messageInfo_HandshakerResp.Marshal(, , )
}
func ( *HandshakerResp) ( proto.Message) {
	xxx_messageInfo_HandshakerResp.Merge(, )
}
func ( *HandshakerResp) () int {
	return xxx_messageInfo_HandshakerResp.Size()
}
func ( *HandshakerResp) () {
	xxx_messageInfo_HandshakerResp.DiscardUnknown()
}

var xxx_messageInfo_HandshakerResp proto.InternalMessageInfo

func ( *HandshakerResp) () []byte {
	if  != nil {
		return .OutFrames
	}
	return nil
}

func ( *HandshakerResp) () uint32 {
	if  != nil {
		return .BytesConsumed
	}
	return 0
}

func ( *HandshakerResp) () *HandshakerResult {
	if  != nil {
		return .Result
	}
	return nil
}

func ( *HandshakerResp) () *HandshakerStatus {
	if  != nil {
		return .Status
	}
	return nil
}

func () {
	proto.RegisterEnum("grpc.gcp.HandshakeProtocol", HandshakeProtocol_name, HandshakeProtocol_value)
	proto.RegisterEnum("grpc.gcp.NetworkProtocol", NetworkProtocol_name, NetworkProtocol_value)
	proto.RegisterType((*Endpoint)(nil), "grpc.gcp.Endpoint")
	proto.RegisterType((*Identity)(nil), "grpc.gcp.Identity")
	proto.RegisterMapType((map[string]string)(nil), "grpc.gcp.Identity.AttributesEntry")
	proto.RegisterType((*StartClientHandshakeReq)(nil), "grpc.gcp.StartClientHandshakeReq")
	proto.RegisterType((*ServerHandshakeParameters)(nil), "grpc.gcp.ServerHandshakeParameters")
	proto.RegisterType((*StartServerHandshakeReq)(nil), "grpc.gcp.StartServerHandshakeReq")
	proto.RegisterMapType((map[int32]*ServerHandshakeParameters)(nil), "grpc.gcp.StartServerHandshakeReq.HandshakeParametersEntry")
	proto.RegisterType((*NextHandshakeMessageReq)(nil), "grpc.gcp.NextHandshakeMessageReq")
	proto.RegisterType((*HandshakerReq)(nil), "grpc.gcp.HandshakerReq")
	proto.RegisterType((*HandshakerResult)(nil), "grpc.gcp.HandshakerResult")
	proto.RegisterType((*HandshakerStatus)(nil), "grpc.gcp.HandshakerStatus")
	proto.RegisterType((*HandshakerResp)(nil), "grpc.gcp.HandshakerResp")
}

func () { proto.RegisterFile("grpc/gcp/handshaker.proto", fileDescriptor_54c074f40c7c7e99) }

1203 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0x1b, 0x45,
	0x14, 0xce, 0xda, 0x4e, 0xe2, 0x1c, 0xc7, 0x3f, 0x99, 0xa6, 0xea, 0x26, 0x6d, 0xc1, 0x18, 0x10,
	0x6e, 0x2f, 0x6c, 0x70, 0x41, 0xa5, 0x45, 0x55, 0x6b, 0x3b, 0x8e, 0x1c, 0x5a, 0x1c, 0x6b, 0x9d,
	0x82, 0x44, 0x2f, 0x56, 0xd3, 0xf5, 0xd4, 0x59, 0x79, 0x3d, 0xb3, 0x9d, 0x19, 0x87, 0xb8, 0xf7,
	0xbc, 0x04, 0xf7, 0xbc, 0x06, 0x2f, 0xc1, 0x33, 0x20, 0xf1, 0x18, 0x68, 0x67, 0x7f, 0x6d, 0xaf,
	0xab, 0x22, 0xb8, 0xdb, 0x39, 0xf3, 0x7d, 0x67, 0xce, 0x9c, 0xf3, 0x9d, 0xb3, 0x03, 0x47, 0x13,
	0xee, 0x5a, 0xcd, 0x89, 0xe5, 0x36, 0x2f, 0x31, 0x1d, 0x8b, 0x4b, 0x3c, 0x25, 0xbc, 0xe1, 0x72,
	0x26, 0x19, 0xca, 0x7b, 0x5b, 0x8d, 0x89, 0xe5, 0x1e, 0xd7, 0x23, 0x90, 0xe4, 0x98, 0x0a, 0x97,
	0x71, 0x69, 0x0a, 0x62, 0xcd, 0xb9, 0x2d, 0x17, 0xa6, 0xc5, 0x66, 0x33, 0x46, 0x7d, 0x4e, 0x4d,
	0x42, 0xbe, 0x47, 0xc7, 0x2e, 0xb3, 0xa9, 0x44, 0x77, 0x01, 0x6c, 0xd7, 0xc4, 0xe3, 0x31, 0x27,
	0x42, 0xe8, 0x5a, 0x55, 0xab, 0xef, 0x19, 0x7b, 0xb6, 0xdb, 0xf6, 0x0d, 0x08, 0x41, 0xce, 0x73,
	0xa4, 0x67, 0xaa, 0x5a, 0x7d, 0xdb, 0x50, 0xdf, 0xe8, 0x1b, 0xc8, 0x2b, 0x3f, 0x16, 0x73, 0xf4,
	0x6c, 0x55, 0xab, 0x97, 0x5a, 0x47, 0x8d, 0x30, 0x8a, 0xc6, 0x80, 0xc8, 0x5f, 0x18, 0x9f, 0x0e,
	0x03, 0x80, 0x11, 0x41, 0x6b, 0x7f, 0x6b, 0x90, 0x3f, 0x1b, 0x13, 0x2a, 0x6d, 0xb9, 0x40, 0xf7,
	0xa0, 0x2c, 0x08, 0xbf, 0xb2, 0x2d, 0x62, 0x62, 0xcb, 0x62, 0x73, 0x2a, 0xfd, 0xb3, 0xfb, 0x5b,
	0x46, 0x29, 0xd8, 0x68, 0xfb, 0x76, 0x74, 0x07, 0xf2, 0x97, 0x4c, 0x48, 0x8a, 0x67, 0x44, 0x85,
	0xe1, 0x61, 0x22, 0x0b, 0xea, 0x00, 0x60, 0x29, 0xb9, 0xfd, 0x7a, 0x2e, 0x89, 0xd0, 0xb3, 0xd5,
	0x6c, 0xbd, 0xd0, 0xaa, 0xc5, 0xe1, 0x84, 0x07, 0x36, 0xda, 0x11, 0xa8, 0x47, 0x25, 0x5f, 0x18,
	0x09, 0xd6, 0xf1, 0x13, 0x28, 0xaf, 0x6c, 0xa3, 0x0a, 0x64, 0xa7, 0x64, 0x11, 0xe4, 0xc3, 0xfb,
	0x44, 0x87, 0xb0, 0x7d, 0x85, 0x9d, 0x79, 0x10, 0x83, 0xe1, 0x2f, 0x1e, 0x67, 0xbe, 0xd5, 0x3a,
	0x15, 0x28, 0xd9, 0xc1, 0x31, 0x26, 0xa3, 0x84, 0xbd, 0xa9, 0xfd, 0x99, 0x83, 0x5b, 0x23, 0x89,
	0xb9, 0xec, 0x3a, 0x36, 0xa1, 0xb2, 0x1f, 0x16, 0xcd, 0x20, 0x6f, 0xd1, 0x2b, 0xb8, 0x1d, 0x15,
	0x31, 0xae, 0x4f, 0x94, 0x50, 0x4d, 0x25, 0xf4, 0x76, 0x7c, 0x83, 0x88, 0x1c, 0xa5, 0xf4, 0x28,
	0xe2, 0x8f, 0x02, 0x7a, 0xb8, 0x85, 0x1e, 0xc0, 0x4d, 0xec, 0xba, 0x8e, 0x6d, 0x61, 0x69, 0x33,
	0x1a, 0x79, 0x15, 0x7a, 0xa6, 0x9a, 0xad, 0xef, 0x19, 0x87, 0x89, 0xcd, 0x90, 0x23, 0xd0, 0x3d,
	0xa8, 0x70, 0x62, 0x31, 0x3e, 0x4e, 0xe0, 0xb3, 0x0a, 0x5f, 0xf6, 0xed, 0x31, 0xf4, 0x29, 0x1c,
	0x48, 0xcc, 0x27, 0x44, 0x9a, 0xc1, 0x8d, 0x6d, 0x22, 0xf4, 0x9c, 0x4a, 0x3a, 0x5a, 0x4f, 0xba,
	0x51, 0xf1, 0xc1, 0x67, 0x11, 0x16, 0x3d, 0x82, 0x92, 0xc3, 0x2c, 0xec, 0x84, 0xfc, 0x85, 0xbe,
	0x5d, 0xd5, 0x36, 0xb0, 0x8b, 0x0a, 0x19, 0x49, 0x26, 0xa2, 0x92, 0x40, 0xbb, 0xfa, 0xce, 0x2a,
	0x35, 0x54, 0x75, 0x40, 0x8d, 0x44, 0xfe, 0x1d, 0x94, 0x39, 0x99, 0x31, 0x49, 0x62, 0xee, 0xee,
	0x46, 0x6e, 0xc9, 0x87, 0x46, 0xe4, 0x8f, 0xa1, 0x10, 0xdc, 0x59, 0x49, 0x30, 0xaf, 0xca, 0x0f,
	0xbe, 0x69, 0xe0, 0x49, 0xf0, 0x19, 0xec, 0x73, 0xd7, 0x32, 0xaf, 0x08, 0x17, 0x36, 0xa3, 0x42,
	0xdf, 0x53, 0xae, 0xef, 0xc6, 0xae, 0x0d, 0xd7, 0x0a, 0x53, 0xf8, 0x63, 0x00, 0x32, 0x0a, 0xdc,
	0xb5, 0xc2, 0x05, 0xfa, 0x0c, 0x4a, 0x33, 0x7c, 0x6d, 0xbe, 0xe1, 0x78, 0x46, 0x4c, 0x61, 0xbf,
	0x23, 0x3a, 0x54, 0xb5, 0x7a, 0xd1, 0xd8, 0x9f, 0xe1, 0xeb, 0x53, 0xcf, 0x38, 0xb2, 0xdf, 0x91,
	0xda, 0xaf, 0x1a, 0x1c, 0x8d, 0x08, 0xbf, 0x22, 0x3c, 0xd6, 0x04, 0xf6, 0x76, 0x25, 0xe1, 0xe9,
	0x55, 0xd4, 0xd2, 0xab, 0xf8, 0x04, 0x2a, 0x4b, 0x45, 0xf0, 0x8a, 0x98, 0xd9, 0x58, 0xc4, 0x72,
	0xb2, 0x0c, 0x36, 0x11, 0xb5, 0xdf, 0x43, 0x75, 0xaf, 0x04, 0xe3, 0xa9, 0x7b, 0xa3, 0x00, 0xb5,
	0xf7, 0x08, 0x70, 0x06, 0x87, 0x71, 0x4b, 0xb8, 0xd1, 0x95, 0x82, 0x98, 0x1e, 0xc7, 0x31, 0x6d,
	0x38, 0xb5, 0x91, 0x92, 0x0f, 0xbf, 0xcb, 0x6f, 0x5c, 0xa6, 0x64, 0xea, 0x08, 0xf2, 0x36, 0x35,
	0x5f, 0x2f, 0xfc, 0x81, 0xa1, 0xd5, 0xf7, 0x8d, 0x5d, 0x9b, 0x76, 0xbc, 0x65, 0x8a, 0xc6, 0x72,
	0xff, 0x41, 0x63, 0xdb, 0x1f, 0xac, 0xb1, 0x55, 0x09, 0xed, 0xfc, 0x0f, 0x12, 0xda, 0x5d, 0x97,
	0xd0, 0xf1, 0x14, 0xf4, 0x4d, 0xb9, 0x4a, 0x8e, 0xbc, 0x6d, 0x7f, 0xe4, 0x3d, 0x4a, 0x8e, 0xbc,
	0x42, 0xeb, 0xd3, 0x44, 0x21, 0x36, 0xc9, 0x30, 0x31, 0x17, 0x6b, 0x5f, 0xc3, 0xad, 0x01, 0xb9,
	0x8e, 0xa7, 0xdf, 0x0f, 0x44, 0x08, 0x3c, 0x51, 0x32, 0x49, 0x96, 0x40, 0x5b, 0x2a, 0x41, 0xed,
	0x2f, 0x0d, 0x8a, 0x11, 0x85, 0x7b, 0xe0, 0x53, 0xd8, 0xb7, 0xd4, 0x1c, 0x35, 0x85, 0x57, 0x7f,
	0x45, 0x28, 0xb4, 0x3e, 0x59, 0x91, 0xc5, 0xfa, 0xa8, 0xed, 0x6f, 0x19, 0x05, 0x9f, 0xa8, 0x00,
	0x9e, 0x1f, 0xa1, 0xe2, 0x0e, 0xfc, 0x64, 0x52, 0xfd, 0xac, 0xcb, 0xcb, 0xf3, 0xe3, 0x13, 0x7d,
	0x3f, 0x0f, 0x21, 0x47, 0xc9, 0xb5, 0x54, 0xda, 0x59, 0xe2, 0x6f, 0xb8, 0x6d, 0x7f, 0xcb, 0x50,
	0x84, 0x4e, 0x01, 0xf6, 0x38, 0x79, 0x1b, 0xfc, 0x23, 0x7e, 0xcb, 0x42, 0x25, 0x79, 0x4f, 0x31,
	0x77, 0x24, 0xfa, 0x0a, 0x0e, 0xd3, 0xda, 0x27, 0xf8, 0x0f, 0xdd, 0x48, 0xe9, 0x1e, 0xf4, 0x05,
	0x94, 0x57, 0xfa, 0x3e, 0xf8, 0x43, 0x95, 0x96, 0xdb, 0xde, 0xcb, 0xf9, 0x94, 0x2c, 0xcc, 0x31,
	0x96, 0x38, 0x94, 0xfd, 0x94, 0x2c, 0x4e, 0xb0, 0xc4, 0xe8, 0x21, 0x14, 0x5d, 0x42, 0x78, 0x3c,
	0x94, 0x73, 0x1b, 0x87, 0xf2, 0xbe, 0x07, 0x5c, 0x9f, 0xc9, 0xff, 0x7e, 0x9c, 0xdf, 0x87, 0x83,
	0x29, 0x21, 0xae, 0x69, 0x5d, 0x62, 0x4a, 0x89, 0x63, 0x32, 0x97, 0x50, 0xa5, 0xfb, 0xbc, 0x51,
	0xf6, 0x36, 0xba, 0xbe, 0xfd, 0xdc, 0x25, 0x14, 0x9d, 0xc1, 0x81, 0x8a, 0x6f, 0xa9, 0x47, 0x76,
	0x3f, 0xa4, 0x47, 0xca, 0x1e, 0xcf, 0x78, 0x6f, 0x9f, 0xe4, 0x53, 0x46, 0xed, 0xb3, 0x64, 0x6d,
	0x46, 0x12, 0xcb, 0xb9, 0x7a, 0x0a, 0x59, 0x6c, 0x4c, 0x54, 0x2d, 0x8a, 0x86, 0xfa, 0x46, 0x3a,
	0xec, 0x8e, 0x89, 0xc4, 0xb6, 0xfa, 0xc3, 0x7a, 0x49, 0x0f, 0x97, 0xb5, 0x3f, 0x34, 0x28, 0x2d,
	0x95, 0xd7, 0xf5, 0x9e, 0x5a, 0x6c, 0x2e, 0xfd, 0xa3, 0x43, 0xd9, 0xef, 0xb1, 0xb9, 0x54, 0xc7,
	0x0a, 0xf4, 0x39, 0x94, 0x54, 0x43, 0x98, 0x16, 0xa3, 0x62, 0x3e, 0x23, 0x63, 0xe5, 0xb2, 0x68,
	0x14, 0x95, 0xb5, 0x1b, 0x18, 0x51, 0x0b, 0x76, 0xb8, 0x12, 0x4b, 0xa0, 0xbf, 0xe3, 0x94, 0xa7,
	0x42, 0x20, 0x27, 0x23, 0x40, 0x7a, 0x1c, 0xa1, 0x2e, 0x11, 0x14, 0x36, 0x95, 0xe3, 0x5f, 0xd3,
	0x08, 0x90, 0xf7, 0xbf, 0x87, 0x83, 0xb5, 0xa7, 0x07, 0xaa, 0xc1, 0x47, 0xfd, 0xf6, 0xe0, 0x64,
	0xd4, 0x6f, 0x3f, 0xef, 0x99, 0x43, 0xe3, 0xfc, 0xe2, 0xbc, 0x7b, 0xfe, 0xc2, 0x7c, 0x39, 0x18,
	0x0d, 0x7b, 0xdd, 0xb3, 0xd3, 0xb3, 0xde, 0x49, 0x65, 0x0b, 0xed, 0x42, 0xf6, 0xe2, 0xc5, 0xa8,
	0xa2, 0xa1, 0x3c, 0xe4, 0xda, 0x2f, 0x2e, 0x46, 0x95, 0xcc, 0xfd, 0x1e, 0x94, 0x57, 0xde, 0x85,
	0xa8, 0x0a, 0x77, 0x06, 0xbd, 0x8b, 0x9f, 0xce, 0x8d, 0xe7, 0xef, 0xf3, 0xd3, 0x1d, 0x56, 0x34,
	0xef, 0xe3, 0xe5, 0xc9, 0xb0, 0x92, 0x69, 0xbd, 0x4a, 0x84, 0xc4, 0x47, 0xfe, 0x2b, 0x11, 0x9d,
	0x42, 0xe1, 0x84, 0x45, 0x66, 0x74, 0x2b, 0x3d, 0x1d, 0x6f, 0x8f, 0xf5, 0x0d, 0x79, 0x72, 0x6b,
	0x5b, 0x75, 0xed, 0x4b, 0xad, 0x33, 0x85, 0x9b, 0x36, 0xf3, 0x31, 0xd8, 0x91, 0xa2, 0x61, 0x53,
	0x49, 0x38, 0xc5, 0x4e, 0xa7, 0x1c, 0xc3, 0x55, 0xf4, 0x43, 0xed, 0xe7, 0xa7, 0x13, 0xc6, 0x26,
	0x0e, 0x69, 0x4c, 0x98, 0x83, 0xe9, 0xa4, 0xc1, 0xf8, 0xa4, 0xa9, 0x1e, 0xdf, 0x16, 0x27, 0x4a,
	0xde, 0xd8, 0x11, 0x4d, 0xcf, 0x49, 0x33, 0x74, 0xd2, 0x54, 0xbd, 0xa9, 0x40, 0xe6, 0xc4, 0x72,
	0x5f, 0xef, 0xa8, 0xf5, 0x83, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xf9, 0x9d, 0xf2, 0xd9,
	0x0b, 0x00, 0x00,
}
Reference imports to suppress errors if they are not otherwise used.
This is a compile-time assertion to ensure that this generated file is compatible with the grpc package it is being compiled against.
HandshakerServiceClient is the client API for HandshakerService service. For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
Handshaker service accepts a stream of handshaker request, returning a stream of handshaker response. Client is expected to send exactly one message with either client_start or server_start followed by one or more messages with next. Each time client sends a request, the handshaker service expects to respond. Client does not have to wait for service's response before sending next request.
HandshakerServiceServer is the server API for HandshakerService service.
Handshaker service accepts a stream of handshaker request, returning a stream of handshaker response. Client is expected to send exactly one message with either client_start or server_start followed by one or more messages with next. Each time client sends a request, the handshaker service expects to respond. Client does not have to wait for service's response before sending next request.
UnimplementedHandshakerServiceServer can be embedded to have forward compatible implementations.