// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.22.0
// 	protoc        v3.12.2
// source: google/search/partnerdataingestion/logging/v1/platformlog.proto

package logging

import (
	reflect "reflect"
	sync "sync"

	proto "github.com/golang/protobuf/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// Log message used to send to Platform Logging.
type IngestDetailsLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Identification of the successfully accepted request.
	IngestionTrackingId string `protobuf:"bytes,1,opt,name=ingestion_tracking_id,json=ingestionTrackingId,proto3" json:"ingestion_tracking_id,omitempty"`
	// The message content will be sent to Platform Logging.
	Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}

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

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

func (*IngestDetailsLog) ProtoMessage() {}

func (x *IngestDetailsLog) ProtoReflect() protoreflect.Message {
	mi := &file_google_search_partnerdataingestion_logging_v1_platformlog_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 IngestDetailsLog.ProtoReflect.Descriptor instead.
func (*IngestDetailsLog) Descriptor() ([]byte, []int) {
	return file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescGZIP(), []int{0}
}

func (x *IngestDetailsLog) GetIngestionTrackingId() string {
	if x != nil {
		return x.IngestionTrackingId
	}
	return ""
}

func (x *IngestDetailsLog) GetContent() string {
	if x != nil {
		return x.Content
	}
	return ""
}

var File_google_search_partnerdataingestion_logging_v1_platformlog_proto protoreflect.FileDescriptor

var file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDesc = []byte{
	0x0a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f,
	0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x67, 0x65, 0x73,
	0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x67, 0x65,
	0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
	0x22, 0x60, 0x0a, 0x10, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x4c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72,
	0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
	0x6e, 0x74, 0x42, 0xa0, 0x01, 0x0a, 0x31, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72,
	0x64, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6c, 0x6f,
	0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x54, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
	0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e,
	0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x6c, 0x6f, 0x67, 0x67, 0x69,
	0x6e, 0x67, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescOnce sync.Once
	file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescData = file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDesc
)

func file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescGZIP() []byte {
	file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescOnce.Do(func() {
		file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescData)
	})
	return file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDescData
}

var file_google_search_partnerdataingestion_logging_v1_platformlog_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_google_search_partnerdataingestion_logging_v1_platformlog_proto_goTypes = []interface{}{
	(*IngestDetailsLog)(nil), // 0: google.search.partnerdataingestion.logging.v1.IngestDetailsLog
}
var file_google_search_partnerdataingestion_logging_v1_platformlog_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_google_search_partnerdataingestion_logging_v1_platformlog_proto_init() }
func file_google_search_partnerdataingestion_logging_v1_platformlog_proto_init() {
	if File_google_search_partnerdataingestion_logging_v1_platformlog_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_google_search_partnerdataingestion_logging_v1_platformlog_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IngestDetailsLog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_search_partnerdataingestion_logging_v1_platformlog_proto_goTypes,
		DependencyIndexes: file_google_search_partnerdataingestion_logging_v1_platformlog_proto_depIdxs,
		MessageInfos:      file_google_search_partnerdataingestion_logging_v1_platformlog_proto_msgTypes,
	}.Build()
	File_google_search_partnerdataingestion_logging_v1_platformlog_proto = out.File
	file_google_search_partnerdataingestion_logging_v1_platformlog_proto_rawDesc = nil
	file_google_search_partnerdataingestion_logging_v1_platformlog_proto_goTypes = nil
	file_google_search_partnerdataingestion_logging_v1_platformlog_proto_depIdxs = nil
}
