// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.21.12
// source: mmcs.proto

package mmcsproto

import (
	reflect "reflect"
	sync "sync"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"

	_ "embed"
)

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 AuthorizePut struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data *AuthorizePut_PutData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	F3   uint32                `protobuf:"varint,3,opt,name=f3,proto3" json:"f3,omitempty"`
}

func (x *AuthorizePut) Reset() {
	*x = AuthorizePut{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePut) ProtoMessage() {}

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

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

func (x *AuthorizePut) GetData() *AuthorizePut_PutData {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *AuthorizePut) GetF3() uint32 {
	if x != nil {
		return x.F3
	}
	return 0
}

type ConfirmResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Inner       []*ConfirmResponse_Request `protobuf:"bytes,1,rep,name=inner,proto3" json:"inner,omitempty"`
	ConfirmData []byte                     `protobuf:"bytes,2,opt,name=confirm_data,json=confirmData,proto3,oneof" json:"confirm_data,omitempty"`
}

func (x *ConfirmResponse) Reset() {
	*x = ConfirmResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ConfirmResponse) ProtoMessage() {}

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

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

func (x *ConfirmResponse) GetInner() []*ConfirmResponse_Request {
	if x != nil {
		return x.Inner
	}
	return nil
}

func (x *ConfirmResponse) GetConfirmData() []byte {
	if x != nil {
		return x.ConfirmData
	}
	return nil
}

type HTTPRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Domain           string                `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"`
	Port             uint32                `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	Method           string                `protobuf:"bytes,3,opt,name=method,proto3" json:"method,omitempty"`
	Path             string                `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	Protocol         string                `protobuf:"bytes,5,opt,name=protocol,proto3" json:"protocol,omitempty"`
	ProtocolVer      string                `protobuf:"bytes,6,opt,name=protocolVer,proto3" json:"protocolVer,omitempty"`
	Scheme           string                `protobuf:"bytes,7,opt,name=scheme,proto3" json:"scheme,omitempty"`
	Headers          []*HTTPRequest_Header `protobuf:"bytes,8,rep,name=headers,proto3" json:"headers,omitempty"`
	Datacenter       string                `protobuf:"bytes,9,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
	ExpiryTimeMillis uint64                `protobuf:"varint,11,opt,name=expiryTimeMillis,proto3" json:"expiryTimeMillis,omitempty"` // uncertain, this is 5 minutes before x-apple-expires in headers
	F12              []*HTTPRequest_Header `protobuf:"bytes,12,rep,name=f12,proto3" json:"f12,omitempty"`                            // in the old protocol, this contained an X-Apple-Cache-iCloud header with a json value?
	F13              uint32                `protobuf:"varint,13,opt,name=f13,proto3" json:"f13,omitempty"`
}

func (x *HTTPRequest) Reset() {
	*x = HTTPRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*HTTPRequest) ProtoMessage() {}

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

// Deprecated: Use HTTPRequest.ProtoReflect.Descriptor instead.
func (*HTTPRequest) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{2}
}

func (x *HTTPRequest) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *HTTPRequest) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *HTTPRequest) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

func (x *HTTPRequest) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *HTTPRequest) GetProtocol() string {
	if x != nil {
		return x.Protocol
	}
	return ""
}

func (x *HTTPRequest) GetProtocolVer() string {
	if x != nil {
		return x.ProtocolVer
	}
	return ""
}

func (x *HTTPRequest) GetScheme() string {
	if x != nil {
		return x.Scheme
	}
	return ""
}

func (x *HTTPRequest) GetHeaders() []*HTTPRequest_Header {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *HTTPRequest) GetDatacenter() string {
	if x != nil {
		return x.Datacenter
	}
	return ""
}

func (x *HTTPRequest) GetExpiryTimeMillis() uint64 {
	if x != nil {
		return x.ExpiryTimeMillis
	}
	return 0
}

func (x *HTTPRequest) GetF12() []*HTTPRequest_Header {
	if x != nil {
		return x.F12
	}
	return nil
}

func (x *HTTPRequest) GetF13() uint32 {
	if x != nil {
		return x.F13
	}
	return 0
}

type Container struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Request *HTTPRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
	// repeated ChunkMeta legacyChunks = 2;
	ClAuthP1 string                    `protobuf:"bytes,3,opt,name=clAuthP1,proto3" json:"clAuthP1,omitempty"`
	ClAuthP2 string                    `protobuf:"bytes,4,opt,name=clAuthP2,proto3" json:"clAuthP2,omitempty"`
	Chunks   []*Container_ChunkWrapper `protobuf:"bytes,5,rep,name=chunks,proto3" json:"chunks,omitempty"`
}

func (x *Container) Reset() {
	*x = Container{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Container) ProtoMessage() {}

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

// Deprecated: Use Container.ProtoReflect.Descriptor instead.
func (*Container) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{3}
}

func (x *Container) GetRequest() *HTTPRequest {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *Container) GetClAuthP1() string {
	if x != nil {
		return x.ClAuthP1
	}
	return ""
}

func (x *Container) GetClAuthP2() string {
	if x != nil {
		return x.ClAuthP2
	}
	return ""
}

func (x *Container) GetChunks() []*Container_ChunkWrapper {
	if x != nil {
		return x.Chunks
	}
	return nil
}

type GetData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Containers []*Container             `protobuf:"bytes,1,rep,name=containers,proto3" json:"containers,omitempty"`
	References *GetData_ChunkReferences `protobuf:"bytes,2,opt,name=references,proto3" json:"references,omitempty"`
}

func (x *GetData) Reset() {
	*x = GetData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetData) ProtoMessage() {}

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

// Deprecated: Use GetData.ProtoReflect.Descriptor instead.
func (*GetData) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{4}
}

func (x *GetData) GetContainers() []*Container {
	if x != nil {
		return x.Containers
	}
	return nil
}

func (x *GetData) GetReferences() *GetData_ChunkReferences {
	if x != nil {
		return x.References
	}
	return nil
}

type ErrorInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Domain  string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` // usually "apple.mme"
	Code    uint32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`    // 3 for file not found
	Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *ErrorInfo) Reset() {
	*x = ErrorInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ErrorInfo) ProtoMessage() {}

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

// Deprecated: Use ErrorInfo.ProtoReflect.Descriptor instead.
func (*ErrorInfo) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{5}
}

func (x *ErrorInfo) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *ErrorInfo) GetCode() uint32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *ErrorInfo) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

type GetError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Signature []byte     `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
	Info      *ErrorInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
}

func (x *GetError) Reset() {
	*x = GetError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetError) ProtoMessage() {}

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

// Deprecated: Use GetError.ProtoReflect.Descriptor instead.
func (*GetError) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{6}
}

func (x *GetError) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *GetError) GetInfo() *ErrorInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

type PutCompleteError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Token string     `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` // same as clAuthP1
	Info  *ErrorInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
}

func (x *PutCompleteError) Reset() {
	*x = PutCompleteError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PutCompleteError) ProtoMessage() {}

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

// Deprecated: Use PutCompleteError.ProtoReflect.Descriptor instead.
func (*PutCompleteError) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{7}
}

func (x *PutCompleteError) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *PutCompleteError) GetInfo() *ErrorInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

type AuthorizeGetResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data  *GetData  `protobuf:"bytes,1,opt,name=data,proto3,oneof" json:"data,omitempty"`
	Error *GetError `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"`
	F4    uint32    `protobuf:"varint,4,opt,name=f4,proto3" json:"f4,omitempty"` // always 2?
}

func (x *AuthorizeGetResponse) Reset() {
	*x = AuthorizeGetResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizeGetResponse) ProtoMessage() {}

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

// Deprecated: Use AuthorizeGetResponse.ProtoReflect.Descriptor instead.
func (*AuthorizeGetResponse) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{8}
}

func (x *AuthorizeGetResponse) GetData() *GetData {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *AuthorizeGetResponse) GetError() *GetError {
	if x != nil {
		return x.Error
	}
	return nil
}

func (x *AuthorizeGetResponse) GetF4() uint32 {
	if x != nil {
		return x.F4
	}
	return 0
}

type AuthorizePutResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Targets []*AuthorizePutResponse_UploadTarget `protobuf:"bytes,1,rep,name=targets,proto3" json:"targets,omitempty"`
	// is 2 an error here too?
	F3          uint32                   `protobuf:"varint,3,opt,name=f3,proto3" json:"f3,omitempty"`
	F4          *AuthorizePutResponse_F4 `protobuf:"bytes,4,opt,name=f4,proto3" json:"f4,omitempty"`
	ConfirmData []byte                   `protobuf:"bytes,6,opt,name=confirm_data,json=confirmData,proto3,oneof" json:"confirm_data,omitempty"`
}

func (x *AuthorizePutResponse) Reset() {
	*x = AuthorizePutResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePutResponse) ProtoMessage() {}

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

// Deprecated: Use AuthorizePutResponse.ProtoReflect.Descriptor instead.
func (*AuthorizePutResponse) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{9}
}

func (x *AuthorizePutResponse) GetTargets() []*AuthorizePutResponse_UploadTarget {
	if x != nil {
		return x.Targets
	}
	return nil
}

func (x *AuthorizePutResponse) GetF3() uint32 {
	if x != nil {
		return x.F3
	}
	return 0
}

func (x *AuthorizePutResponse) GetF4() *AuthorizePutResponse_F4 {
	if x != nil {
		return x.F4
	}
	return nil
}

func (x *AuthorizePutResponse) GetConfirmData() []byte {
	if x != nil {
		return x.ConfirmData
	}
	return nil
}

type PutFooter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Md5Sum      []byte `protobuf:"bytes,1,opt,name=md5_sum,json=md5Sum,proto3" json:"md5_sum,omitempty"`
	ConfirmData []byte `protobuf:"bytes,2,opt,name=confirm_data,json=confirmData,proto3,oneof" json:"confirm_data,omitempty"`
}

func (x *PutFooter) Reset() {
	*x = PutFooter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PutFooter) ProtoMessage() {}

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

// Deprecated: Use PutFooter.ProtoReflect.Descriptor instead.
func (*PutFooter) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{10}
}

func (x *PutFooter) GetMd5Sum() []byte {
	if x != nil {
		return x.Md5Sum
	}
	return nil
}

func (x *PutFooter) GetConfirmData() []byte {
	if x != nil {
		return x.ConfirmData
	}
	return nil
}

type PutCompleteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	F1 *PutCompleteError          `protobuf:"bytes,1,opt,name=f1,proto3" json:"f1,omitempty"`
	F2 *GetError                  `protobuf:"bytes,2,opt,name=f2,proto3" json:"f2,omitempty"` // whole file error?
	F3 *PutCompleteResponse_Inner `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"`
}

func (x *PutCompleteResponse) Reset() {
	*x = PutCompleteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PutCompleteResponse) ProtoMessage() {}

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

// Deprecated: Use PutCompleteResponse.ProtoReflect.Descriptor instead.
func (*PutCompleteResponse) Descriptor() ([]byte, []int) {
	return file_mmcs_proto_rawDescGZIP(), []int{11}
}

func (x *PutCompleteResponse) GetF1() *PutCompleteError {
	if x != nil {
		return x.F1
	}
	return nil
}

func (x *PutCompleteResponse) GetF2() *GetError {
	if x != nil {
		return x.F2
	}
	return nil
}

func (x *PutCompleteResponse) GetF3() *PutCompleteResponse_Inner {
	if x != nil {
		return x.F3
	}
	return nil
}

type AuthorizePut_PutData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Sig    []byte                        `protobuf:"bytes,1,opt,name=sig,proto3" json:"sig,omitempty"`
	Token  string                        `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	Chunks []*AuthorizePut_PutData_Chunk `protobuf:"bytes,3,rep,name=chunks,proto3" json:"chunks,omitempty"`
	Footer *AuthorizePut_PutData_Footer  `protobuf:"bytes,8,opt,name=footer,proto3" json:"footer,omitempty"`
}

func (x *AuthorizePut_PutData) Reset() {
	*x = AuthorizePut_PutData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePut_PutData) ProtoMessage() {}

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

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

func (x *AuthorizePut_PutData) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

func (x *AuthorizePut_PutData) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *AuthorizePut_PutData) GetChunks() []*AuthorizePut_PutData_Chunk {
	if x != nil {
		return x.Chunks
	}
	return nil
}

func (x *AuthorizePut_PutData) GetFooter() *AuthorizePut_PutData_Footer {
	if x != nil {
		return x.Footer
	}
	return nil
}

type AuthorizePut_PutData_Chunk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Sig  []byte `protobuf:"bytes,1,opt,name=sig,proto3" json:"sig,omitempty"`
	Size uint32 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
}

func (x *AuthorizePut_PutData_Chunk) Reset() {
	*x = AuthorizePut_PutData_Chunk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePut_PutData_Chunk) ProtoMessage() {}

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

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

func (x *AuthorizePut_PutData_Chunk) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

func (x *AuthorizePut_PutData_Chunk) GetSize() uint32 {
	if x != nil {
		return x.Size
	}
	return 0
}

type AuthorizePut_PutData_Footer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChunkCount  uint32 `protobuf:"varint,1,opt,name=chunk_count,json=chunkCount,proto3" json:"chunk_count,omitempty"`
	ProfileType string `protobuf:"bytes,101,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
	F103        uint32 `protobuf:"varint,103,opt,name=f103,proto3" json:"f103,omitempty"`
}

func (x *AuthorizePut_PutData_Footer) Reset() {
	*x = AuthorizePut_PutData_Footer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePut_PutData_Footer) ProtoMessage() {}

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

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

func (x *AuthorizePut_PutData_Footer) GetChunkCount() uint32 {
	if x != nil {
		return x.ChunkCount
	}
	return 0
}

func (x *AuthorizePut_PutData_Footer) GetProfileType() string {
	if x != nil {
		return x.ProfileType
	}
	return ""
}

func (x *AuthorizePut_PutData_Footer) GetF103() uint32 {
	if x != nil {
		return x.F103
	}
	return 0
}

type ConfirmResponse_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url      string                            `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Status   uint32                            `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	EdgeInfo []*ConfirmResponse_Request_Metric `protobuf:"bytes,4,rep,name=edgeInfo,proto3" json:"edgeInfo,omitempty"`
	Md5Sum   []byte                            `protobuf:"bytes,7,opt,name=md5sum,proto3,oneof" json:"md5sum,omitempty"`
	Metrics  []*ConfirmResponse_Request_Metric `protobuf:"bytes,8,rep,name=metrics,proto3" json:"metrics,omitempty"`
	Metrics2 []*ConfirmResponse_Request_Metric `protobuf:"bytes,9,rep,name=metrics2,proto3" json:"metrics2,omitempty"`
	Token    string                            `protobuf:"bytes,10,opt,name=token,proto3" json:"token,omitempty"`
	F13      uint32                            `protobuf:"varint,13,opt,name=f13,proto3" json:"f13,omitempty"`
}

func (x *ConfirmResponse_Request) Reset() {
	*x = ConfirmResponse_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ConfirmResponse_Request) ProtoMessage() {}

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

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

func (x *ConfirmResponse_Request) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *ConfirmResponse_Request) GetStatus() uint32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ConfirmResponse_Request) GetEdgeInfo() []*ConfirmResponse_Request_Metric {
	if x != nil {
		return x.EdgeInfo
	}
	return nil
}

func (x *ConfirmResponse_Request) GetMd5Sum() []byte {
	if x != nil {
		return x.Md5Sum
	}
	return nil
}

func (x *ConfirmResponse_Request) GetMetrics() []*ConfirmResponse_Request_Metric {
	if x != nil {
		return x.Metrics
	}
	return nil
}

func (x *ConfirmResponse_Request) GetMetrics2() []*ConfirmResponse_Request_Metric {
	if x != nil {
		return x.Metrics2
	}
	return nil
}

func (x *ConfirmResponse_Request) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *ConfirmResponse_Request) GetF13() uint32 {
	if x != nil {
		return x.F13
	}
	return 0
}

type ConfirmResponse_Request_Metric struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	N string `protobuf:"bytes,1,opt,name=n,proto3" json:"n,omitempty"`
	V string `protobuf:"bytes,2,opt,name=v,proto3" json:"v,omitempty"`
}

func (x *ConfirmResponse_Request_Metric) Reset() {
	*x = ConfirmResponse_Request_Metric{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ConfirmResponse_Request_Metric) ProtoMessage() {}

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

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

func (x *ConfirmResponse_Request_Metric) GetN() string {
	if x != nil {
		return x.N
	}
	return ""
}

func (x *ConfirmResponse_Request_Metric) GetV() string {
	if x != nil {
		return x.V
	}
	return ""
}

type HTTPRequest_Header struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *HTTPRequest_Header) Reset() {
	*x = HTTPRequest_Header{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*HTTPRequest_Header) ProtoMessage() {}

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

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

func (x *HTTPRequest_Header) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *HTTPRequest_Header) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

type Container_ChunkMeta struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Checksum []byte `protobuf:"bytes,1,opt,name=checksum,proto3" json:"checksum,omitempty"`
	Size     uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
	Offset   uint32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}

func (x *Container_ChunkMeta) Reset() {
	*x = Container_ChunkMeta{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Container_ChunkMeta) ProtoMessage() {}

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

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

func (x *Container_ChunkMeta) GetChecksum() []byte {
	if x != nil {
		return x.Checksum
	}
	return nil
}

func (x *Container_ChunkMeta) GetSize() uint64 {
	if x != nil {
		return x.Size
	}
	return 0
}

func (x *Container_ChunkMeta) GetOffset() uint32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

type Container_ChunkWrapper struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Meta *Container_ChunkMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"`
}

func (x *Container_ChunkWrapper) Reset() {
	*x = Container_ChunkWrapper{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Container_ChunkWrapper) ProtoMessage() {}

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

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

func (x *Container_ChunkWrapper) GetMeta() *Container_ChunkMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

type GetData_ChunkReferences struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FileChecksum    []byte                                    `protobuf:"bytes,1,opt,name=fileChecksum,proto3" json:"fileChecksum,omitempty"`
	ChunkReferences []*GetData_ChunkReferences_ChunkReference `protobuf:"bytes,2,rep,name=chunkReferences,proto3" json:"chunkReferences,omitempty"`
	F5              uint32                                    `protobuf:"varint,5,opt,name=f5,proto3" json:"f5,omitempty"`
}

func (x *GetData_ChunkReferences) Reset() {
	*x = GetData_ChunkReferences{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetData_ChunkReferences) ProtoMessage() {}

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

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

func (x *GetData_ChunkReferences) GetFileChecksum() []byte {
	if x != nil {
		return x.FileChecksum
	}
	return nil
}

func (x *GetData_ChunkReferences) GetChunkReferences() []*GetData_ChunkReferences_ChunkReference {
	if x != nil {
		return x.ChunkReferences
	}
	return nil
}

func (x *GetData_ChunkReferences) GetF5() uint32 {
	if x != nil {
		return x.F5
	}
	return 0
}

type GetData_ChunkReferences_ChunkReference struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContainerIndex uint32 `protobuf:"varint,1,opt,name=container_index,json=containerIndex,proto3" json:"container_index,omitempty"`
	ChunkIndex     uint32 `protobuf:"varint,2,opt,name=chunk_index,json=chunkIndex,proto3" json:"chunk_index,omitempty"`
}

func (x *GetData_ChunkReferences_ChunkReference) Reset() {
	*x = GetData_ChunkReferences_ChunkReference{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetData_ChunkReferences_ChunkReference) ProtoMessage() {}

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

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

func (x *GetData_ChunkReferences_ChunkReference) GetContainerIndex() uint32 {
	if x != nil {
		return x.ContainerIndex
	}
	return 0
}

func (x *GetData_ChunkReferences_ChunkReference) GetChunkIndex() uint32 {
	if x != nil {
		return x.ChunkIndex
	}
	return 0
}

type AuthorizePutResponse_UploadTarget struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClAuthP1 string       `protobuf:"bytes,1,opt,name=clAuthP1,proto3" json:"clAuthP1,omitempty"`
	Request  *HTTPRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
	// repeated bytes legacyChunks = 3;
	ClAuthP2 string                                               `protobuf:"bytes,4,opt,name=clAuthP2,proto3" json:"clAuthP2,omitempty"`
	Chunks   []*AuthorizePutResponse_UploadTarget_ChunkIdentifier `protobuf:"bytes,5,rep,name=chunks,proto3" json:"chunks,omitempty"`
}

func (x *AuthorizePutResponse_UploadTarget) Reset() {
	*x = AuthorizePutResponse_UploadTarget{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePutResponse_UploadTarget) ProtoMessage() {}

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

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

func (x *AuthorizePutResponse_UploadTarget) GetClAuthP1() string {
	if x != nil {
		return x.ClAuthP1
	}
	return ""
}

func (x *AuthorizePutResponse_UploadTarget) GetRequest() *HTTPRequest {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *AuthorizePutResponse_UploadTarget) GetClAuthP2() string {
	if x != nil {
		return x.ClAuthP2
	}
	return ""
}

func (x *AuthorizePutResponse_UploadTarget) GetChunks() []*AuthorizePutResponse_UploadTarget_ChunkIdentifier {
	if x != nil {
		return x.Chunks
	}
	return nil
}

type AuthorizePutResponse_F4 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
	F2        uint32 `protobuf:"varint,2,opt,name=f2,proto3" json:"f2,omitempty"`
}

func (x *AuthorizePutResponse_F4) Reset() {
	*x = AuthorizePutResponse_F4{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePutResponse_F4) ProtoMessage() {}

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

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

func (x *AuthorizePutResponse_F4) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *AuthorizePutResponse_F4) GetF2() uint32 {
	if x != nil {
		return x.F2
	}
	return 0
}

type AuthorizePutResponse_UploadTarget_ChunkIdentifier struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChunkId []byte `protobuf:"bytes,1,opt,name=chunk_id,json=chunkId,proto3" json:"chunk_id,omitempty"`
}

func (x *AuthorizePutResponse_UploadTarget_ChunkIdentifier) Reset() {
	*x = AuthorizePutResponse_UploadTarget_ChunkIdentifier{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthorizePutResponse_UploadTarget_ChunkIdentifier) ProtoMessage() {}

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

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

func (x *AuthorizePutResponse_UploadTarget_ChunkIdentifier) GetChunkId() []byte {
	if x != nil {
		return x.ChunkId
	}
	return nil
}

type PutCompleteResponse_Inner struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Signature   []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
	F2          int32  `protobuf:"varint,2,opt,name=f2,proto3" json:"f2,omitempty"` // 1
	F3          string `protobuf:"bytes,3,opt,name=f3,proto3" json:"f3,omitempty"`  // same as the "signature" (f1) in GetError
	TimestampMS int64  `protobuf:"varint,5,opt,name=timestampMS,proto3" json:"timestampMS,omitempty"`
}

func (x *PutCompleteResponse_Inner) Reset() {
	*x = PutCompleteResponse_Inner{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mmcs_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PutCompleteResponse_Inner) ProtoMessage() {}

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

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

func (x *PutCompleteResponse_Inner) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *PutCompleteResponse_Inner) GetF2() int32 {
	if x != nil {
		return x.F2
	}
	return 0
}

func (x *PutCompleteResponse_Inner) GetF3() string {
	if x != nil {
		return x.F3
	}
	return ""
}

func (x *PutCompleteResponse_Inner) GetTimestampMS() int64 {
	if x != nil {
		return x.TimestampMS
	}
	return 0
}

var File_mmcs_proto protoreflect.FileDescriptor

//go:embed mmcs.pb.raw
var file_mmcs_proto_rawDesc []byte

var (
	file_mmcs_proto_rawDescOnce sync.Once
	file_mmcs_proto_rawDescData = file_mmcs_proto_rawDesc
)

func file_mmcs_proto_rawDescGZIP() []byte {
	file_mmcs_proto_rawDescOnce.Do(func() {
		file_mmcs_proto_rawDescData = protoimpl.X.CompressGZIP(file_mmcs_proto_rawDescData)
	})
	return file_mmcs_proto_rawDescData
}

var file_mmcs_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_mmcs_proto_goTypes = []interface{}{
	(*AuthorizePut)(nil),                                      // 0: mmcsp.AuthorizePut
	(*ConfirmResponse)(nil),                                   // 1: mmcsp.ConfirmResponse
	(*HTTPRequest)(nil),                                       // 2: mmcsp.HTTPRequest
	(*Container)(nil),                                         // 3: mmcsp.Container
	(*GetData)(nil),                                           // 4: mmcsp.GetData
	(*ErrorInfo)(nil),                                         // 5: mmcsp.ErrorInfo
	(*GetError)(nil),                                          // 6: mmcsp.GetError
	(*PutCompleteError)(nil),                                  // 7: mmcsp.PutCompleteError
	(*AuthorizeGetResponse)(nil),                              // 8: mmcsp.AuthorizeGetResponse
	(*AuthorizePutResponse)(nil),                              // 9: mmcsp.AuthorizePutResponse
	(*PutFooter)(nil),                                         // 10: mmcsp.PutFooter
	(*PutCompleteResponse)(nil),                               // 11: mmcsp.PutCompleteResponse
	(*AuthorizePut_PutData)(nil),                              // 12: mmcsp.AuthorizePut.PutData
	(*AuthorizePut_PutData_Chunk)(nil),                        // 13: mmcsp.AuthorizePut.PutData.Chunk
	(*AuthorizePut_PutData_Footer)(nil),                       // 14: mmcsp.AuthorizePut.PutData.Footer
	(*ConfirmResponse_Request)(nil),                           // 15: mmcsp.ConfirmResponse.Request
	(*ConfirmResponse_Request_Metric)(nil),                    // 16: mmcsp.ConfirmResponse.Request.Metric
	(*HTTPRequest_Header)(nil),                                // 17: mmcsp.HTTPRequest.Header
	(*Container_ChunkMeta)(nil),                               // 18: mmcsp.Container.ChunkMeta
	(*Container_ChunkWrapper)(nil),                            // 19: mmcsp.Container.ChunkWrapper
	(*GetData_ChunkReferences)(nil),                           // 20: mmcsp.GetData.ChunkReferences
	(*GetData_ChunkReferences_ChunkReference)(nil),            // 21: mmcsp.GetData.ChunkReferences.ChunkReference
	(*AuthorizePutResponse_UploadTarget)(nil),                 // 22: mmcsp.AuthorizePutResponse.UploadTarget
	(*AuthorizePutResponse_F4)(nil),                           // 23: mmcsp.AuthorizePutResponse.F4
	(*AuthorizePutResponse_UploadTarget_ChunkIdentifier)(nil), // 24: mmcsp.AuthorizePutResponse.UploadTarget.ChunkIdentifier
	(*PutCompleteResponse_Inner)(nil),                         // 25: mmcsp.PutCompleteResponse.Inner
}
var file_mmcs_proto_depIdxs = []int32{
	12, // 0: mmcsp.AuthorizePut.data:type_name -> mmcsp.AuthorizePut.PutData
	15, // 1: mmcsp.ConfirmResponse.inner:type_name -> mmcsp.ConfirmResponse.Request
	17, // 2: mmcsp.HTTPRequest.headers:type_name -> mmcsp.HTTPRequest.Header
	17, // 3: mmcsp.HTTPRequest.f12:type_name -> mmcsp.HTTPRequest.Header
	2,  // 4: mmcsp.Container.request:type_name -> mmcsp.HTTPRequest
	19, // 5: mmcsp.Container.chunks:type_name -> mmcsp.Container.ChunkWrapper
	3,  // 6: mmcsp.GetData.containers:type_name -> mmcsp.Container
	20, // 7: mmcsp.GetData.references:type_name -> mmcsp.GetData.ChunkReferences
	5,  // 8: mmcsp.GetError.info:type_name -> mmcsp.ErrorInfo
	5,  // 9: mmcsp.PutCompleteError.info:type_name -> mmcsp.ErrorInfo
	4,  // 10: mmcsp.AuthorizeGetResponse.data:type_name -> mmcsp.GetData
	6,  // 11: mmcsp.AuthorizeGetResponse.error:type_name -> mmcsp.GetError
	22, // 12: mmcsp.AuthorizePutResponse.targets:type_name -> mmcsp.AuthorizePutResponse.UploadTarget
	23, // 13: mmcsp.AuthorizePutResponse.f4:type_name -> mmcsp.AuthorizePutResponse.F4
	7,  // 14: mmcsp.PutCompleteResponse.f1:type_name -> mmcsp.PutCompleteError
	6,  // 15: mmcsp.PutCompleteResponse.f2:type_name -> mmcsp.GetError
	25, // 16: mmcsp.PutCompleteResponse.f3:type_name -> mmcsp.PutCompleteResponse.Inner
	13, // 17: mmcsp.AuthorizePut.PutData.chunks:type_name -> mmcsp.AuthorizePut.PutData.Chunk
	14, // 18: mmcsp.AuthorizePut.PutData.footer:type_name -> mmcsp.AuthorizePut.PutData.Footer
	16, // 19: mmcsp.ConfirmResponse.Request.edgeInfo:type_name -> mmcsp.ConfirmResponse.Request.Metric
	16, // 20: mmcsp.ConfirmResponse.Request.metrics:type_name -> mmcsp.ConfirmResponse.Request.Metric
	16, // 21: mmcsp.ConfirmResponse.Request.metrics2:type_name -> mmcsp.ConfirmResponse.Request.Metric
	18, // 22: mmcsp.Container.ChunkWrapper.meta:type_name -> mmcsp.Container.ChunkMeta
	21, // 23: mmcsp.GetData.ChunkReferences.chunkReferences:type_name -> mmcsp.GetData.ChunkReferences.ChunkReference
	2,  // 24: mmcsp.AuthorizePutResponse.UploadTarget.request:type_name -> mmcsp.HTTPRequest
	24, // 25: mmcsp.AuthorizePutResponse.UploadTarget.chunks:type_name -> mmcsp.AuthorizePutResponse.UploadTarget.ChunkIdentifier
	26, // [26:26] is the sub-list for method output_type
	26, // [26:26] is the sub-list for method input_type
	26, // [26:26] is the sub-list for extension type_name
	26, // [26:26] is the sub-list for extension extendee
	0,  // [0:26] is the sub-list for field type_name
}

func init() { file_mmcs_proto_init() }
func file_mmcs_proto_init() {
	if File_mmcs_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_mmcs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePut); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConfirmResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HTTPRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Container); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ErrorInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutCompleteError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizeGetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePutResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutFooter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutCompleteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePut_PutData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePut_PutData_Chunk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePut_PutData_Footer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConfirmResponse_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConfirmResponse_Request_Metric); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HTTPRequest_Header); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Container_ChunkMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Container_ChunkWrapper); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetData_ChunkReferences); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetData_ChunkReferences_ChunkReference); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePutResponse_UploadTarget); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePutResponse_F4); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthorizePutResponse_UploadTarget_ChunkIdentifier); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mmcs_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutCompleteResponse_Inner); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_mmcs_proto_msgTypes[1].OneofWrappers = []interface{}{}
	file_mmcs_proto_msgTypes[8].OneofWrappers = []interface{}{}
	file_mmcs_proto_msgTypes[9].OneofWrappers = []interface{}{}
	file_mmcs_proto_msgTypes[10].OneofWrappers = []interface{}{}
	file_mmcs_proto_msgTypes[15].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_mmcs_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   26,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_mmcs_proto_goTypes,
		DependencyIndexes: file_mmcs_proto_depIdxs,
		MessageInfos:      file_mmcs_proto_msgTypes,
	}.Build()
	File_mmcs_proto = out.File
	file_mmcs_proto_rawDesc = nil
	file_mmcs_proto_goTypes = nil
	file_mmcs_proto_depIdxs = nil
}
