// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.5
// source: ContactDiscovery.proto

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

package signalpb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type CDSClientRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Each ACI/UAK pair is a 32-byte buffer, containing the 16-byte ACI followed
	// by its 16-byte UAK.
	AciUakPairs []byte `protobuf:"bytes,1,opt,name=aci_uak_pairs,json=aciUakPairs" json:"aci_uak_pairs,omitempty"`
	// Each E164 is an 8-byte big-endian number, as 8 bytes.
	PrevE164S    []byte `protobuf:"bytes,2,opt,name=prev_e164s,json=prevE164s" json:"prev_e164s,omitempty"`
	NewE164S     []byte `protobuf:"bytes,3,opt,name=new_e164s,json=newE164s" json:"new_e164s,omitempty"`
	DiscardE164S []byte `protobuf:"bytes,4,opt,name=discard_e164s,json=discardE164s" json:"discard_e164s,omitempty"`
	// If true, the client has more pairs or e164s to send.  If false or unset,
	// this is the client's last request, and processing should commence.
	HasMore *bool `protobuf:"varint,5,opt,name=has_more,json=hasMore" json:"has_more,omitempty"`
	// If set, a token which allows rate limiting to discount the e164s in
	// the request's prev_e164s, only counting new_e164s.  If not set, then
	// rate limiting considers both prev_e164s' and new_e164s' size.
	Token []byte `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"`
	// After receiving a new token from the server, send back a message just
	// containing a token_ack.
	TokenAck *bool `protobuf:"varint,7,opt,name=token_ack,json=tokenAck" json:"token_ack,omitempty"`
	// Request that, if the server allows, both ACI and PNI be returned even
	// if the aci_uak_pairs don't match.
	ReturnAcisWithoutUaks *bool `protobuf:"varint,8,opt,name=return_acis_without_uaks,json=returnAcisWithoutUaks" json:"return_acis_without_uaks,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *CDSClientRequest) Reset() {
	*x = CDSClientRequest{}
	mi := &file_ContactDiscovery_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CDSClientRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDSClientRequest) ProtoMessage() {}

func (x *CDSClientRequest) ProtoReflect() protoreflect.Message {
	mi := &file_ContactDiscovery_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDSClientRequest.ProtoReflect.Descriptor instead.
func (*CDSClientRequest) Descriptor() ([]byte, []int) {
	return file_ContactDiscovery_proto_rawDescGZIP(), []int{0}
}

func (x *CDSClientRequest) GetAciUakPairs() []byte {
	if x != nil {
		return x.AciUakPairs
	}
	return nil
}

func (x *CDSClientRequest) GetPrevE164S() []byte {
	if x != nil {
		return x.PrevE164S
	}
	return nil
}

func (x *CDSClientRequest) GetNewE164S() []byte {
	if x != nil {
		return x.NewE164S
	}
	return nil
}

func (x *CDSClientRequest) GetDiscardE164S() []byte {
	if x != nil {
		return x.DiscardE164S
	}
	return nil
}

func (x *CDSClientRequest) GetHasMore() bool {
	if x != nil && x.HasMore != nil {
		return *x.HasMore
	}
	return false
}

func (x *CDSClientRequest) GetToken() []byte {
	if x != nil {
		return x.Token
	}
	return nil
}

func (x *CDSClientRequest) GetTokenAck() bool {
	if x != nil && x.TokenAck != nil {
		return *x.TokenAck
	}
	return false
}

func (x *CDSClientRequest) GetReturnAcisWithoutUaks() bool {
	if x != nil && x.ReturnAcisWithoutUaks != nil {
		return *x.ReturnAcisWithoutUaks
	}
	return false
}

type CDSClientResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Each triple is an 8-byte e164, a 16-byte PNI, and a 16-byte ACI.
	// If the e164 was not found, PNI and ACI are all zeros.  If the PNI
	// was found but the ACI was not, the PNI will be non-zero and the ACI
	// will be all zeros.  ACI will be returned if one of the returned
	// PNIs has an ACI/UAK pair that matches.
	//
	// Should the request be successful (IE: a successful status returned),
	// |e164_pni_aci_triple| will always equal |e164| of the request,
	// so the entire marshalled size of the response will be (2+32)*|e164|,
	// where the additional 2 bytes are the id/type/length additions of the
	// protobuf marshaling added to each byte array.  This avoids any data
	// leakage based on the size of the encrypted output.
	E164PniAciTriples []byte `protobuf:"bytes,1,opt,name=e164_pni_aci_triples,json=e164PniAciTriples" json:"e164_pni_aci_triples,omitempty"`
	// A token which allows subsequent calls' rate limiting to discount the
	// e164s sent up in this request, only counting those in the next
	// request's new_e164s.
	Token         []byte `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CDSClientResponse) Reset() {
	*x = CDSClientResponse{}
	mi := &file_ContactDiscovery_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CDSClientResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDSClientResponse) ProtoMessage() {}

func (x *CDSClientResponse) ProtoReflect() protoreflect.Message {
	mi := &file_ContactDiscovery_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDSClientResponse.ProtoReflect.Descriptor instead.
func (*CDSClientResponse) Descriptor() ([]byte, []int) {
	return file_ContactDiscovery_proto_rawDescGZIP(), []int{1}
}

func (x *CDSClientResponse) GetE164PniAciTriples() []byte {
	if x != nil {
		return x.E164PniAciTriples
	}
	return nil
}

func (x *CDSClientResponse) GetToken() []byte {
	if x != nil {
		return x.Token
	}
	return nil
}

var File_ContactDiscovery_proto protoreflect.FileDescriptor

const file_ContactDiscovery_proto_rawDesc = "" +
	"\n" +
	"\x16ContactDiscovery.proto\x12\rsignalservice\"\x9e\x02\n" +
	"\x10CDSClientRequest\x12\"\n" +
	"\raci_uak_pairs\x18\x01 \x01(\fR\vaciUakPairs\x12\x1d\n" +
	"\n" +
	"prev_e164s\x18\x02 \x01(\fR\tprevE164s\x12\x1b\n" +
	"\tnew_e164s\x18\x03 \x01(\fR\bnewE164s\x12#\n" +
	"\rdiscard_e164s\x18\x04 \x01(\fR\fdiscardE164s\x12\x19\n" +
	"\bhas_more\x18\x05 \x01(\bR\ahasMore\x12\x14\n" +
	"\x05token\x18\x06 \x01(\fR\x05token\x12\x1b\n" +
	"\ttoken_ack\x18\a \x01(\bR\btokenAck\x127\n" +
	"\x18return_acis_without_uaks\x18\b \x01(\bR\x15returnAcisWithoutUaks\"Z\n" +
	"\x11CDSClientResponse\x12/\n" +
	"\x14e164_pni_aci_triples\x18\x01 \x01(\fR\x11e164PniAciTriples\x12\x14\n" +
	"\x05token\x18\x03 \x01(\fR\x05token"

var (
	file_ContactDiscovery_proto_rawDescOnce sync.Once
	file_ContactDiscovery_proto_rawDescData []byte
)

func file_ContactDiscovery_proto_rawDescGZIP() []byte {
	file_ContactDiscovery_proto_rawDescOnce.Do(func() {
		file_ContactDiscovery_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ContactDiscovery_proto_rawDesc), len(file_ContactDiscovery_proto_rawDesc)))
	})
	return file_ContactDiscovery_proto_rawDescData
}

var file_ContactDiscovery_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_ContactDiscovery_proto_goTypes = []any{
	(*CDSClientRequest)(nil),  // 0: signalservice.CDSClientRequest
	(*CDSClientResponse)(nil), // 1: signalservice.CDSClientResponse
}
var file_ContactDiscovery_proto_depIdxs = []int32{
	0, // [0:0] is the sub-list for method output_type
	0, // [0:0] is the sub-list for method input_type
	0, // [0:0] is the sub-list for extension type_name
	0, // [0:0] is the sub-list for extension extendee
	0, // [0:0] is the sub-list for field type_name
}

func init() { file_ContactDiscovery_proto_init() }
func file_ContactDiscovery_proto_init() {
	if File_ContactDiscovery_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ContactDiscovery_proto_rawDesc), len(file_ContactDiscovery_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_ContactDiscovery_proto_goTypes,
		DependencyIndexes: file_ContactDiscovery_proto_depIdxs,
		MessageInfos:      file_ContactDiscovery_proto_msgTypes,
	}.Build()
	File_ContactDiscovery_proto = out.File
	file_ContactDiscovery_proto_goTypes = nil
	file_ContactDiscovery_proto_depIdxs = nil
}
