// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.21.12
// source: yandex/cloud/audittrails/v1/trail.proto

package audittrails

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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 Trail_Status int32

const (
	Trail_STATUS_UNSPECIFIED Trail_Status = 0
	// The trail is active and Audit events are processed
	Trail_ACTIVE Trail_Status = 1
	// The trail configuration has issues that are preventing Audit Trails from delivering events
	Trail_ERROR Trail_Status = 2
	// The trail is being deleted
	Trail_DELETED Trail_Status = 3
)

// Enum value maps for Trail_Status.
var (
	Trail_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "ACTIVE",
		2: "ERROR",
		3: "DELETED",
	}
	Trail_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"ACTIVE":             1,
		"ERROR":              2,
		"DELETED":            3,
	}
)

func (x Trail_Status) Enum() *Trail_Status {
	p := new(Trail_Status)
	*p = x
	return p
}

func (x Trail_Status) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Trail_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[0].Descriptor()
}

func (Trail_Status) Type() protoreflect.EnumType {
	return &file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[0]
}

func (x Trail_Status) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Trail_Status.Descriptor instead.
func (Trail_Status) EnumDescriptor() ([]byte, []int) {
	return file_yandex_cloud_audittrails_v1_trail_proto_rawDescGZIP(), []int{0, 0}
}

type Trail_Codec int32

const (
	Trail_CODEC_UNSPECIFIED Trail_Codec = 0
	Trail_RAW               Trail_Codec = 1
	Trail_GZIP              Trail_Codec = 2
	Trail_ZSTD              Trail_Codec = 3
)

// Enum value maps for Trail_Codec.
var (
	Trail_Codec_name = map[int32]string{
		0: "CODEC_UNSPECIFIED",
		1: "RAW",
		2: "GZIP",
		3: "ZSTD",
	}
	Trail_Codec_value = map[string]int32{
		"CODEC_UNSPECIFIED": 0,
		"RAW":               1,
		"GZIP":              2,
		"ZSTD":              3,
	}
)

func (x Trail_Codec) Enum() *Trail_Codec {
	p := new(Trail_Codec)
	*p = x
	return p
}

func (x Trail_Codec) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Trail_Codec) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[1].Descriptor()
}

func (Trail_Codec) Type() protoreflect.EnumType {
	return &file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[1]
}

func (x Trail_Codec) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Trail_Codec.Descriptor instead.
func (Trail_Codec) EnumDescriptor() ([]byte, []int) {
	return file_yandex_cloud_audittrails_v1_trail_proto_rawDescGZIP(), []int{0, 1}
}

type Trail_EventCategoryFilter int32

const (
	Trail_EVENT_CATEGORY_FILTER_UNSPECIFIED Trail_EventCategoryFilter = 0
	// The events that are generated during the interaction with the service's resources
	Trail_CONTROL_PLANE Trail_EventCategoryFilter = 1
	// Events that are generated during interaction with data within the service's resources
	Trail_DATA_PLANE Trail_EventCategoryFilter = 2
)

// Enum value maps for Trail_EventCategoryFilter.
var (
	Trail_EventCategoryFilter_name = map[int32]string{
		0: "EVENT_CATEGORY_FILTER_UNSPECIFIED",
		1: "CONTROL_PLANE",
		2: "DATA_PLANE",
	}
	Trail_EventCategoryFilter_value = map[string]int32{
		"EVENT_CATEGORY_FILTER_UNSPECIFIED": 0,
		"CONTROL_PLANE":                     1,
		"DATA_PLANE":                        2,
	}
)

func (x Trail_EventCategoryFilter) Enum() *Trail_EventCategoryFilter {
	p := new(Trail_EventCategoryFilter)
	*p = x
	return p
}

func (x Trail_EventCategoryFilter) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Trail_EventCategoryFilter) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[2].Descriptor()
}

func (Trail_EventCategoryFilter) Type() protoreflect.EnumType {
	return &file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[2]
}

func (x Trail_EventCategoryFilter) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Trail_EventCategoryFilter.Descriptor instead.
func (Trail_EventCategoryFilter) EnumDescriptor() ([]byte, []int) {
	return file_yandex_cloud_audittrails_v1_trail_proto_rawDescGZIP(), []int{0, 2}
}

type Trail_EventAccessTypeFilter int32

const (
	Trail_EVENT_ACCESS_TYPE_FILTER_UNSPECIFIED Trail_EventAccessTypeFilter = 0
	// Events for operations that do perform some modification
	Trail_WRITE Trail_EventAccessTypeFilter = 1
	// Events for operations that do not perform any modifications
	Trail_READ Trail_EventAccessTypeFilter = 2
)

// Enum value maps for Trail_EventAccessTypeFilter.
var (
	Trail_EventAccessTypeFilter_name = map[int32]string{
		0: "EVENT_ACCESS_TYPE_FILTER_UNSPECIFIED",
		1: "WRITE",
		2: "READ",
	}
	Trail_EventAccessTypeFilter_value = map[string]int32{
		"EVENT_ACCESS_TYPE_FILTER_UNSPECIFIED": 0,
		"WRITE":                                1,
		"READ":                                 2,
	}
)

func (x Trail_EventAccessTypeFilter) Enum() *Trail_EventAccessTypeFilter {
	p := new(Trail_EventAccessTypeFilter)
	*p = x
	return p
}

func (x Trail_EventAccessTypeFilter) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Trail_EventAccessTypeFilter) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[3].Descriptor()
}

func (Trail_EventAccessTypeFilter) Type() protoreflect.EnumType {
	return &file_yandex_cloud_audittrails_v1_trail_proto_enumTypes[3]
}

func (x Trail_EventAccessTypeFilter) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Trail_EventAccessTypeFilter.Descriptor instead.
func (Trail_EventAccessTypeFilter) EnumDescriptor() ([]byte, []int) {
	return file_yandex_cloud_audittrails_v1_trail_proto_rawDescGZIP(), []int{0, 3}
}

// Trail describes the filtering and destination configuration of the process of sending Audit events
type Trail struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the trail
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// ID of the folder that the trail belongs to
	FolderId string `protobuf:"bytes,2,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	// The timestamp for the creation operation
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// The timestamp of the last update operation
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Name of the trail
	Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
	// Description of the trail
	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// Custom labels of the trail as `key:value` pairs. Maximum 64 per key
	Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Destination configuration of the trail
	Destination *Trail_Destination `protobuf:"bytes,8,opt,name=destination,proto3" json:"destination,omitempty"`
	// Service account ID of the trail
	ServiceAccountId string `protobuf:"bytes,9,opt,name=service_account_id,json=serviceAccountId,proto3" json:"service_account_id,omitempty"`
	// Status of the trail
	Status Trail_Status `protobuf:"varint,10,opt,name=status,proto3,enum=yandex.cloud.audittrails.v1.Trail_Status" json:"status,omitempty"`
	// Filtering configuration of the trail
	// deprecated: use filtering_policy instead
	//
	// Deprecated: Marked as deprecated in yandex/cloud/audittrails/v1/trail.proto.
	Filter *Trail_Filter `protobuf:"bytes,11,opt,name=filter,proto3" json:"filter,omitempty"`
	// Current error message of the trail. Empty in case if the trail is active
	StatusErrorMessage string `protobuf:"bytes,12,opt,name=status_error_message,json=statusErrorMessage,proto3" json:"status_error_message,omitempty"`
	// ID of the cloud that the trail belongs to
	CloudId string `protobuf:"bytes,14,opt,name=cloud_id,json=cloudId,proto3" json:"cloud_id,omitempty"`
	// Event filtering policy
	// Describes which groups of events will be sent and which resources will be monitored
	FilteringPolicy *Trail_FilteringPolicy `protobuf:"bytes,15,opt,name=filtering_policy,json=filteringPolicy,proto3" json:"filtering_policy,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Trail) ProtoMessage() {}

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

func (x *Trail) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Trail) GetFolderId() string {
	if x != nil {
		return x.FolderId
	}
	return ""
}

func (x *Trail) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Trail) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

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

func (x *Trail) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Trail) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *Trail) GetDestination() *Trail_Destination {
	if x != nil {
		return x.Destination
	}
	return nil
}

func (x *Trail) GetServiceAccountId() string {
	if x != nil {
		return x.ServiceAccountId
	}
	return ""
}

func (x *Trail) GetStatus() Trail_Status {
	if x != nil {
		return x.Status
	}
	return Trail_STATUS_UNSPECIFIED
}

// Deprecated: Marked as deprecated in yandex/cloud/audittrails/v1/trail.proto.
func (x *Trail) GetFilter() *Trail_Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *Trail) GetStatusErrorMessage() string {
	if x != nil {
		return x.StatusErrorMessage
	}
	return ""
}

func (x *Trail) GetCloudId() string {
	if x != nil {
		return x.CloudId
	}
	return ""
}

func (x *Trail) GetFilteringPolicy() *Trail_FilteringPolicy {
	if x != nil {
		return x.FilteringPolicy
	}
	return nil
}

type Trail_Destination struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Destination:
	//
	//	*Trail_Destination_ObjectStorage
	//	*Trail_Destination_CloudLogging
	//	*Trail_Destination_DataStream
	//	*Trail_Destination_Eventrouter
	Destination   isTrail_Destination_Destination `protobuf_oneof:"destination"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_Destination) Reset() {
	*x = Trail_Destination{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_Destination) ProtoMessage() {}

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

func (x *Trail_Destination) GetDestination() isTrail_Destination_Destination {
	if x != nil {
		return x.Destination
	}
	return nil
}

func (x *Trail_Destination) GetObjectStorage() *Trail_ObjectStorage {
	if x != nil {
		if x, ok := x.Destination.(*Trail_Destination_ObjectStorage); ok {
			return x.ObjectStorage
		}
	}
	return nil
}

func (x *Trail_Destination) GetCloudLogging() *Trail_CloudLogging {
	if x != nil {
		if x, ok := x.Destination.(*Trail_Destination_CloudLogging); ok {
			return x.CloudLogging
		}
	}
	return nil
}

func (x *Trail_Destination) GetDataStream() *Trail_DataStream {
	if x != nil {
		if x, ok := x.Destination.(*Trail_Destination_DataStream); ok {
			return x.DataStream
		}
	}
	return nil
}

func (x *Trail_Destination) GetEventrouter() *Trail_EventRouter {
	if x != nil {
		if x, ok := x.Destination.(*Trail_Destination_Eventrouter); ok {
			return x.Eventrouter
		}
	}
	return nil
}

type isTrail_Destination_Destination interface {
	isTrail_Destination_Destination()
}

type Trail_Destination_ObjectStorage struct {
	// Configuration for event delivery to Object Storage
	//
	// Uploaded objects will have prefix <trail_id>/ by default
	ObjectStorage *Trail_ObjectStorage `protobuf:"bytes,1,opt,name=object_storage,json=objectStorage,proto3,oneof"`
}

type Trail_Destination_CloudLogging struct {
	// Configuration for event delivery to Cloud Logging
	CloudLogging *Trail_CloudLogging `protobuf:"bytes,3,opt,name=cloud_logging,json=cloudLogging,proto3,oneof"`
}

type Trail_Destination_DataStream struct {
	// Configuration for event delivery to YDS
	DataStream *Trail_DataStream `protobuf:"bytes,4,opt,name=data_stream,json=dataStream,proto3,oneof"`
}

type Trail_Destination_Eventrouter struct {
	// Configuration for event delivery to EventRouter
	Eventrouter *Trail_EventRouter `protobuf:"bytes,6,opt,name=eventrouter,proto3,oneof"`
}

func (*Trail_Destination_ObjectStorage) isTrail_Destination_Destination() {}

func (*Trail_Destination_CloudLogging) isTrail_Destination_Destination() {}

func (*Trail_Destination_DataStream) isTrail_Destination_Destination() {}

func (*Trail_Destination_Eventrouter) isTrail_Destination_Destination() {}

type Trail_ObjectStorage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the destination bucket
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// Prefix for exported objects. Optional
	// If specified, uploaded objects will have prefix <object_prefix>/<trail_id>/
	ObjectPrefix  string `protobuf:"bytes,2,opt,name=object_prefix,json=objectPrefix,proto3" json:"object_prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_ObjectStorage) Reset() {
	*x = Trail_ObjectStorage{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_ObjectStorage) ProtoMessage() {}

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

func (x *Trail_ObjectStorage) GetBucketId() string {
	if x != nil {
		return x.BucketId
	}
	return ""
}

func (x *Trail_ObjectStorage) GetObjectPrefix() string {
	if x != nil {
		return x.ObjectPrefix
	}
	return ""
}

type Trail_CloudLogging struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Destination:
	//
	//	*Trail_CloudLogging_LogGroupId
	Destination   isTrail_CloudLogging_Destination `protobuf_oneof:"destination"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_CloudLogging) Reset() {
	*x = Trail_CloudLogging{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_CloudLogging) ProtoMessage() {}

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

func (x *Trail_CloudLogging) GetDestination() isTrail_CloudLogging_Destination {
	if x != nil {
		return x.Destination
	}
	return nil
}

func (x *Trail_CloudLogging) GetLogGroupId() string {
	if x != nil {
		if x, ok := x.Destination.(*Trail_CloudLogging_LogGroupId); ok {
			return x.LogGroupId
		}
	}
	return ""
}

type isTrail_CloudLogging_Destination interface {
	isTrail_CloudLogging_Destination()
}

type Trail_CloudLogging_LogGroupId struct {
	// ID of the Cloud Logging destination group
	LogGroupId string `protobuf:"bytes,1,opt,name=log_group_id,json=logGroupId,proto3,oneof"`
}

func (*Trail_CloudLogging_LogGroupId) isTrail_CloudLogging_Destination() {}

type Trail_DataStream struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the database hosting the destination YDS
	DatabaseId string `protobuf:"bytes,1,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"`
	// Name of the destination YDS
	StreamName string `protobuf:"bytes,2,opt,name=stream_name,json=streamName,proto3" json:"stream_name,omitempty"`
	// Codec for compressing events
	Codec         Trail_Codec `protobuf:"varint,3,opt,name=codec,proto3,enum=yandex.cloud.audittrails.v1.Trail_Codec" json:"codec,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_DataStream) Reset() {
	*x = Trail_DataStream{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_DataStream) ProtoMessage() {}

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

func (x *Trail_DataStream) GetDatabaseId() string {
	if x != nil {
		return x.DatabaseId
	}
	return ""
}

func (x *Trail_DataStream) GetStreamName() string {
	if x != nil {
		return x.StreamName
	}
	return ""
}

func (x *Trail_DataStream) GetCodec() Trail_Codec {
	if x != nil {
		return x.Codec
	}
	return Trail_CODEC_UNSPECIFIED
}

type Trail_EventRouter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the EventRouter Connector
	EventrouterConnectorId string `protobuf:"bytes,1,opt,name=eventrouter_connector_id,json=eventrouterConnectorId,proto3" json:"eventrouter_connector_id,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *Trail_EventRouter) Reset() {
	*x = Trail_EventRouter{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_EventRouter) ProtoMessage() {}

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

func (x *Trail_EventRouter) GetEventrouterConnectorId() string {
	if x != nil {
		return x.EventrouterConnectorId
	}
	return ""
}

type Trail_Filter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Configuration of default events gathering for the trail
	// If not specified, default events won't be gathered for the trail
	PathFilter *Trail_PathFilter `protobuf:"bytes,1,opt,name=path_filter,json=pathFilter,proto3" json:"path_filter,omitempty"`
	// Configuration of additional events gathering from specific services
	EventFilter   *Trail_EventFilter `protobuf:"bytes,2,opt,name=event_filter,json=eventFilter,proto3" json:"event_filter,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_Filter) Reset() {
	*x = Trail_Filter{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_Filter) ProtoMessage() {}

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

func (x *Trail_Filter) GetPathFilter() *Trail_PathFilter {
	if x != nil {
		return x.PathFilter
	}
	return nil
}

func (x *Trail_Filter) GetEventFilter() *Trail_EventFilter {
	if x != nil {
		return x.EventFilter
	}
	return nil
}

type Trail_PathFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Root element of the resource path filter for the trail
	// Resource described in that filter node must contain the trail itself
	Root          *Trail_PathFilterElement `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_PathFilter) Reset() {
	*x = Trail_PathFilter{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_PathFilter) ProtoMessage() {}

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

func (x *Trail_PathFilter) GetRoot() *Trail_PathFilterElement {
	if x != nil {
		return x.Root
	}
	return nil
}

type Trail_PathFilterElement struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Element:
	//
	//	*Trail_PathFilterElement_AnyFilter
	//	*Trail_PathFilterElement_SomeFilter
	Element       isTrail_PathFilterElement_Element `protobuf_oneof:"element"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_PathFilterElement) Reset() {
	*x = Trail_PathFilterElement{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_PathFilterElement) ProtoMessage() {}

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

func (x *Trail_PathFilterElement) GetElement() isTrail_PathFilterElement_Element {
	if x != nil {
		return x.Element
	}
	return nil
}

func (x *Trail_PathFilterElement) GetAnyFilter() *Trail_PathFilterElementAny {
	if x != nil {
		if x, ok := x.Element.(*Trail_PathFilterElement_AnyFilter); ok {
			return x.AnyFilter
		}
	}
	return nil
}

func (x *Trail_PathFilterElement) GetSomeFilter() *Trail_PathFilterElementSome {
	if x != nil {
		if x, ok := x.Element.(*Trail_PathFilterElement_SomeFilter); ok {
			return x.SomeFilter
		}
	}
	return nil
}

type isTrail_PathFilterElement_Element interface {
	isTrail_PathFilterElement_Element()
}

type Trail_PathFilterElement_AnyFilter struct {
	// Filter element with ANY type. If used, configures the trail to gather any events from the resource
	AnyFilter *Trail_PathFilterElementAny `protobuf:"bytes,1,opt,name=any_filter,json=anyFilter,proto3,oneof"`
}

type Trail_PathFilterElement_SomeFilter struct {
	// Filter element with SOME type. If used, configures the trail to gather some of the events from the resource
	SomeFilter *Trail_PathFilterElementSome `protobuf:"bytes,2,opt,name=some_filter,json=someFilter,proto3,oneof"`
}

func (*Trail_PathFilterElement_AnyFilter) isTrail_PathFilterElement_Element() {}

func (*Trail_PathFilterElement_SomeFilter) isTrail_PathFilterElement_Element() {}

type Trail_PathFilterElementAny struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Resource definition
	Resource      *Trail_Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_PathFilterElementAny) Reset() {
	*x = Trail_PathFilterElementAny{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_PathFilterElementAny) ProtoMessage() {}

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

func (x *Trail_PathFilterElementAny) GetResource() *Trail_Resource {
	if x != nil {
		return x.Resource
	}
	return nil
}

type Trail_PathFilterElementSome struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Definition of the resource that contains nested resources
	Resource *Trail_Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	// Filters for the resources contained in the parent resource
	Filters       []*Trail_PathFilterElement `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_PathFilterElementSome) Reset() {
	*x = Trail_PathFilterElementSome{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_PathFilterElementSome) ProtoMessage() {}

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

func (x *Trail_PathFilterElementSome) GetResource() *Trail_Resource {
	if x != nil {
		return x.Resource
	}
	return nil
}

func (x *Trail_PathFilterElementSome) GetFilters() []*Trail_PathFilterElement {
	if x != nil {
		return x.Filters
	}
	return nil
}

type Trail_Resource struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the resource
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Type of the resource
	Type          string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_Resource) Reset() {
	*x = Trail_Resource{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_Resource) ProtoMessage() {}

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

func (x *Trail_Resource) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Trail_Resource) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

type Trail_EventFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of filters for services
	Filters       []*Trail_EventFilterElement `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_EventFilter) Reset() {
	*x = Trail_EventFilter{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_EventFilter) ProtoMessage() {}

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

func (x *Trail_EventFilter) GetFilters() []*Trail_EventFilterElement {
	if x != nil {
		return x.Filters
	}
	return nil
}

type Trail_EventFilterElement struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Service ID of the gathered events
	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	// List of the event categories gathered for a specified service
	Categories []*Trail_EventFilterElementCategory `protobuf:"bytes,2,rep,name=categories,proto3" json:"categories,omitempty"`
	// Resource path filter for a specified service
	PathFilter    *Trail_PathFilter `protobuf:"bytes,3,opt,name=path_filter,json=pathFilter,proto3" json:"path_filter,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_EventFilterElement) Reset() {
	*x = Trail_EventFilterElement{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_EventFilterElement) ProtoMessage() {}

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

func (x *Trail_EventFilterElement) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

func (x *Trail_EventFilterElement) GetCategories() []*Trail_EventFilterElementCategory {
	if x != nil {
		return x.Categories
	}
	return nil
}

func (x *Trail_EventFilterElement) GetPathFilter() *Trail_PathFilter {
	if x != nil {
		return x.PathFilter
	}
	return nil
}

type Trail_EventFilterElementCategory struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Plane of the gathered category
	Plane Trail_EventCategoryFilter `protobuf:"varint,1,opt,name=plane,proto3,enum=yandex.cloud.audittrails.v1.Trail_EventCategoryFilter" json:"plane,omitempty"`
	// Type of the gathered category
	Type          Trail_EventAccessTypeFilter `protobuf:"varint,2,opt,name=type,proto3,enum=yandex.cloud.audittrails.v1.Trail_EventAccessTypeFilter" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_EventFilterElementCategory) Reset() {
	*x = Trail_EventFilterElementCategory{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_EventFilterElementCategory) ProtoMessage() {}

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

func (x *Trail_EventFilterElementCategory) GetPlane() Trail_EventCategoryFilter {
	if x != nil {
		return x.Plane
	}
	return Trail_EVENT_CATEGORY_FILTER_UNSPECIFIED
}

func (x *Trail_EventFilterElementCategory) GetType() Trail_EventAccessTypeFilter {
	if x != nil {
		return x.Type
	}
	return Trail_EVENT_ACCESS_TYPE_FILTER_UNSPECIFIED
}

// Policy for gathering data events
type Trail_DataEventsFiltering struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the service whose events will be delivered
	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	// Types that are valid to be assigned to AdditionalRules:
	//
	//	*Trail_DataEventsFiltering_IncludedEvents
	//	*Trail_DataEventsFiltering_ExcludedEvents
	AdditionalRules isTrail_DataEventsFiltering_AdditionalRules `protobuf_oneof:"additional_rules"`
	// Types that are valid to be assigned to ServiceSpecificRules:
	//
	//	*Trail_DataEventsFiltering_DnsFilter
	ServiceSpecificRules isTrail_DataEventsFiltering_ServiceSpecificRules `protobuf_oneof:"service_specific_rules"`
	// A list of resources which will be monitored by the trail
	ResourceScopes []*Trail_Resource `protobuf:"bytes,4,rep,name=resource_scopes,json=resourceScopes,proto3" json:"resource_scopes,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *Trail_DataEventsFiltering) Reset() {
	*x = Trail_DataEventsFiltering{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_DataEventsFiltering) ProtoMessage() {}

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

func (x *Trail_DataEventsFiltering) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

func (x *Trail_DataEventsFiltering) GetAdditionalRules() isTrail_DataEventsFiltering_AdditionalRules {
	if x != nil {
		return x.AdditionalRules
	}
	return nil
}

func (x *Trail_DataEventsFiltering) GetIncludedEvents() *Trail_EventTypes {
	if x != nil {
		if x, ok := x.AdditionalRules.(*Trail_DataEventsFiltering_IncludedEvents); ok {
			return x.IncludedEvents
		}
	}
	return nil
}

func (x *Trail_DataEventsFiltering) GetExcludedEvents() *Trail_EventTypes {
	if x != nil {
		if x, ok := x.AdditionalRules.(*Trail_DataEventsFiltering_ExcludedEvents); ok {
			return x.ExcludedEvents
		}
	}
	return nil
}

func (x *Trail_DataEventsFiltering) GetServiceSpecificRules() isTrail_DataEventsFiltering_ServiceSpecificRules {
	if x != nil {
		return x.ServiceSpecificRules
	}
	return nil
}

func (x *Trail_DataEventsFiltering) GetDnsFilter() *Trail_DnsDataEventsFilter {
	if x != nil {
		if x, ok := x.ServiceSpecificRules.(*Trail_DataEventsFiltering_DnsFilter); ok {
			return x.DnsFilter
		}
	}
	return nil
}

func (x *Trail_DataEventsFiltering) GetResourceScopes() []*Trail_Resource {
	if x != nil {
		return x.ResourceScopes
	}
	return nil
}

type isTrail_DataEventsFiltering_AdditionalRules interface {
	isTrail_DataEventsFiltering_AdditionalRules()
}

type Trail_DataEventsFiltering_IncludedEvents struct {
	// Explicitly included events of specified service
	// New events of the service won't be delivered by default
	IncludedEvents *Trail_EventTypes `protobuf:"bytes,2,opt,name=included_events,json=includedEvents,proto3,oneof"`
}

type Trail_DataEventsFiltering_ExcludedEvents struct {
	// Explicitly excluded events of specified service
	// New events of the service will be delivered by default
	ExcludedEvents *Trail_EventTypes `protobuf:"bytes,3,opt,name=excluded_events,json=excludedEvents,proto3,oneof"`
}

func (*Trail_DataEventsFiltering_IncludedEvents) isTrail_DataEventsFiltering_AdditionalRules() {}

func (*Trail_DataEventsFiltering_ExcludedEvents) isTrail_DataEventsFiltering_AdditionalRules() {}

type isTrail_DataEventsFiltering_ServiceSpecificRules interface {
	isTrail_DataEventsFiltering_ServiceSpecificRules()
}

type Trail_DataEventsFiltering_DnsFilter struct {
	// Filter is allowed only if service = dns
	DnsFilter *Trail_DnsDataEventsFilter `protobuf:"bytes,5,opt,name=dns_filter,json=dnsFilter,proto3,oneof"`
}

func (*Trail_DataEventsFiltering_DnsFilter) isTrail_DataEventsFiltering_ServiceSpecificRules() {}

// Policy with explicitly specified event group
type Trail_EventTypes struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	EventTypes    []string               `protobuf:"bytes,1,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trail_EventTypes) Reset() {
	*x = Trail_EventTypes{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_EventTypes) ProtoMessage() {}

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

func (x *Trail_EventTypes) GetEventTypes() []string {
	if x != nil {
		return x.EventTypes
	}
	return nil
}

// Policy for gathering management events
type Trail_ManagementEventsFiltering struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A list of resources which will be monitored by the trail
	ResourceScopes []*Trail_Resource `protobuf:"bytes,1,rep,name=resource_scopes,json=resourceScopes,proto3" json:"resource_scopes,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *Trail_ManagementEventsFiltering) Reset() {
	*x = Trail_ManagementEventsFiltering{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_ManagementEventsFiltering) ProtoMessage() {}

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

func (x *Trail_ManagementEventsFiltering) GetResourceScopes() []*Trail_Resource {
	if x != nil {
		return x.ResourceScopes
	}
	return nil
}

// Combination of policies describing event filtering process of the trail
// At least one filed must be filled
type Trail_FilteringPolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Singular filter describing gathering management events
	ManagementEventsFilter *Trail_ManagementEventsFiltering `protobuf:"bytes,1,opt,name=management_events_filter,json=managementEventsFilter,proto3" json:"management_events_filter,omitempty"`
	// List of filters describing gathering data events
	DataEventsFilters []*Trail_DataEventsFiltering `protobuf:"bytes,2,rep,name=data_events_filters,json=dataEventsFilters,proto3" json:"data_events_filters,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *Trail_FilteringPolicy) Reset() {
	*x = Trail_FilteringPolicy{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_FilteringPolicy) ProtoMessage() {}

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

func (x *Trail_FilteringPolicy) GetManagementEventsFilter() *Trail_ManagementEventsFiltering {
	if x != nil {
		return x.ManagementEventsFilter
	}
	return nil
}

func (x *Trail_FilteringPolicy) GetDataEventsFilters() []*Trail_DataEventsFiltering {
	if x != nil {
		return x.DataEventsFilters
	}
	return nil
}

type Trail_DnsDataEventsFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Not only recursive queries will be delivered
	IncludeNonrecursiveQueries bool `protobuf:"varint,2,opt,name=include_nonrecursive_queries,json=includeNonrecursiveQueries,proto3" json:"include_nonrecursive_queries,omitempty"`
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

func (x *Trail_DnsDataEventsFilter) Reset() {
	*x = Trail_DnsDataEventsFilter{}
	mi := &file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Trail_DnsDataEventsFilter) ProtoMessage() {}

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

func (x *Trail_DnsDataEventsFilter) GetIncludeNonrecursiveQueries() bool {
	if x != nil {
		return x.IncludeNonrecursiveQueries
	}
	return false
}

var File_yandex_cloud_audittrails_v1_trail_proto protoreflect.FileDescriptor

const file_yandex_cloud_audittrails_v1_trail_proto_rawDesc = "" +
	"\n" +
	"'yandex/cloud/audittrails/v1/trail.proto\x12\x1byandex.cloud.audittrails.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\"\xa1#\n" +
	"\x05Trail\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12)\n" +
	"\tfolder_id\x18\x02 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\bfolderId\x12?\n" +
	"\n" +
	"created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampB\x04\xe8\xc71\x01R\tcreatedAt\x12?\n" +
	"\n" +
	"updated_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampB\x04\xe8\xc71\x01R\tupdatedAt\x128\n" +
	"\x04name\x18\x05 \x01(\tB$\xf2\xc71 |[a-z]([-a-z0-9]{0,61}[a-z0-9])?R\x04name\x12,\n" +
	"\vdescription\x18\x06 \x01(\tB\n" +
	"\x8a\xc81\x06<=1024R\vdescription\x12\x83\x01\n" +
	"\x06labels\x18\a \x03(\v2..yandex.cloud.audittrails.v1.Trail.LabelsEntryB;\xf2\xc71\v[-_0-9a-z]*\x82\xc81\x04<=64\x8a\xc81\x04<=63\xb2\xc81\x18\x12\x10[a-z][-_0-9a-z]*\x1a\x04<=63R\x06labels\x12V\n" +
	"\vdestination\x18\b \x01(\v2..yandex.cloud.audittrails.v1.Trail.DestinationB\x04\xe8\xc71\x01R\vdestination\x126\n" +
	"\x12service_account_id\x18\t \x01(\tB\b\x8a\xc81\x04<=50R\x10serviceAccountId\x12G\n" +
	"\x06status\x18\n" +
	" \x01(\x0e2).yandex.cloud.audittrails.v1.Trail.StatusB\x04\xe8\xc71\x01R\x06status\x12E\n" +
	"\x06filter\x18\v \x01(\v2).yandex.cloud.audittrails.v1.Trail.FilterB\x02\x18\x01R\x06filter\x120\n" +
	"\x14status_error_message\x18\f \x01(\tR\x12statusErrorMessage\x12'\n" +
	"\bcloud_id\x18\x0e \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\acloudId\x12]\n" +
	"\x10filtering_policy\x18\x0f \x01(\v22.yandex.cloud.audittrails.v1.Trail.FilteringPolicyR\x0ffilteringPolicy\x1a9\n" +
	"\vLabelsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a\x87\x03\n" +
	"\vDestination\x12Y\n" +
	"\x0eobject_storage\x18\x01 \x01(\v20.yandex.cloud.audittrails.v1.Trail.ObjectStorageH\x00R\robjectStorage\x12V\n" +
	"\rcloud_logging\x18\x03 \x01(\v2/.yandex.cloud.audittrails.v1.Trail.CloudLoggingH\x00R\fcloudLogging\x12P\n" +
	"\vdata_stream\x18\x04 \x01(\v2-.yandex.cloud.audittrails.v1.Trail.DataStreamH\x00R\n" +
	"dataStream\x12R\n" +
	"\veventrouter\x18\x06 \x01(\v2..yandex.cloud.audittrails.v1.Trail.EventRouterH\x00R\veventrouterB\x13\n" +
	"\vdestination\x12\x04\xc0\xc11\x01J\x04\b\x02\x10\x03J\x04\b\x05\x10\x06\x1a[\n" +
	"\rObjectStorage\x12%\n" +
	"\tbucket_id\x18\x01 \x01(\tB\b\x8a\xc81\x043-63R\bbucketId\x12#\n" +
	"\robject_prefix\x18\x02 \x01(\tR\fobjectPrefix\x1aQ\n" +
	"\fCloudLogging\x12,\n" +
	"\flog_group_id\x18\x01 \x01(\tB\b\x8a\xc81\x04<=64H\x00R\n" +
	"logGroupIdB\r\n" +
	"\vdestinationJ\x04\b\x02\x10\x03\x1a\x8e\x01\n" +
	"\n" +
	"DataStream\x12\x1f\n" +
	"\vdatabase_id\x18\x01 \x01(\tR\n" +
	"databaseId\x12\x1f\n" +
	"\vstream_name\x18\x02 \x01(\tR\n" +
	"streamName\x12>\n" +
	"\x05codec\x18\x03 \x01(\x0e2(.yandex.cloud.audittrails.v1.Trail.CodecR\x05codec\x1aQ\n" +
	"\vEventRouter\x12B\n" +
	"\x18eventrouter_connector_id\x18\x01 \x01(\tB\b\x8a\xc81\x04<=64R\x16eventrouterConnectorId\x1a\xb1\x01\n" +
	"\x06Filter\x12N\n" +
	"\vpath_filter\x18\x01 \x01(\v2-.yandex.cloud.audittrails.v1.Trail.PathFilterR\n" +
	"pathFilter\x12W\n" +
	"\fevent_filter\x18\x02 \x01(\v2..yandex.cloud.audittrails.v1.Trail.EventFilterB\x04\xe8\xc71\x01R\veventFilter\x1a\\\n" +
	"\n" +
	"PathFilter\x12N\n" +
	"\x04root\x18\x01 \x01(\v24.yandex.cloud.audittrails.v1.Trail.PathFilterElementB\x04\xe8\xc71\x01R\x04root\x1a\xdb\x01\n" +
	"\x11PathFilterElement\x12X\n" +
	"\n" +
	"any_filter\x18\x01 \x01(\v27.yandex.cloud.audittrails.v1.Trail.PathFilterElementAnyH\x00R\tanyFilter\x12[\n" +
	"\vsome_filter\x18\x02 \x01(\v28.yandex.cloud.audittrails.v1.Trail.PathFilterElementSomeH\x00R\n" +
	"someFilterB\x0f\n" +
	"\aelement\x12\x04\xc0\xc11\x01\x1ae\n" +
	"\x14PathFilterElementAny\x12M\n" +
	"\bresource\x18\x01 \x01(\v2+.yandex.cloud.audittrails.v1.Trail.ResourceB\x04\xe8\xc71\x01R\bresource\x1a\xbe\x01\n" +
	"\x15PathFilterElementSome\x12M\n" +
	"\bresource\x18\x01 \x01(\v2+.yandex.cloud.audittrails.v1.Trail.ResourceB\x04\xe8\xc71\x01R\bresource\x12V\n" +
	"\afilters\x18\x02 \x03(\v24.yandex.cloud.audittrails.v1.Trail.PathFilterElementB\x06\x82\xc81\x02>0R\afilters\x1aJ\n" +
	"\bResource\x12\x1c\n" +
	"\x02id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=64R\x02id\x12 \n" +
	"\x04type\x18\x02 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\x04type\x1ag\n" +
	"\vEventFilter\x12X\n" +
	"\afilters\x18\x01 \x03(\v25.yandex.cloud.audittrails.v1.Trail.EventFilterElementB\a\x82\xc81\x03>=0R\afilters\x1a\xf1\x01\n" +
	"\x12EventFilterElement\x12\x1e\n" +
	"\aservice\x18\x01 \x01(\tB\x04\xe8\xc71\x01R\aservice\x12e\n" +
	"\n" +
	"categories\x18\x02 \x03(\v2=.yandex.cloud.audittrails.v1.Trail.EventFilterElementCategoryB\x06\x82\xc81\x02>0R\n" +
	"categories\x12T\n" +
	"\vpath_filter\x18\x03 \x01(\v2-.yandex.cloud.audittrails.v1.Trail.PathFilterB\x04\xe8\xc71\x01R\n" +
	"pathFilter\x1a\xc4\x01\n" +
	"\x1aEventFilterElementCategory\x12R\n" +
	"\x05plane\x18\x01 \x01(\x0e26.yandex.cloud.audittrails.v1.Trail.EventCategoryFilterB\x04\xe8\xc71\x01R\x05plane\x12R\n" +
	"\x04type\x18\x02 \x01(\x0e28.yandex.cloud.audittrails.v1.Trail.EventAccessTypeFilterB\x04\xe8\xc71\x01R\x04type\x1a\xd2\x03\n" +
	"\x13DataEventsFiltering\x12\x1e\n" +
	"\aservice\x18\x01 \x01(\tB\x04\xe8\xc71\x01R\aservice\x12X\n" +
	"\x0fincluded_events\x18\x02 \x01(\v2-.yandex.cloud.audittrails.v1.Trail.EventTypesH\x00R\x0eincludedEvents\x12X\n" +
	"\x0fexcluded_events\x18\x03 \x01(\v2-.yandex.cloud.audittrails.v1.Trail.EventTypesH\x00R\x0eexcludedEvents\x12W\n" +
	"\n" +
	"dns_filter\x18\x05 \x01(\v26.yandex.cloud.audittrails.v1.Trail.DnsDataEventsFilterH\x01R\tdnsFilter\x12`\n" +
	"\x0fresource_scopes\x18\x04 \x03(\v2+.yandex.cloud.audittrails.v1.Trail.ResourceB\n" +
	"\x82\xc81\x061-1024R\x0eresourceScopesB\x12\n" +
	"\x10additional_rulesB\x18\n" +
	"\x16service_specific_rules\x1a9\n" +
	"\n" +
	"EventTypes\x12+\n" +
	"\vevent_types\x18\x01 \x03(\tB\n" +
	"\x82\xc81\x061-1024R\n" +
	"eventTypes\x1a}\n" +
	"\x19ManagementEventsFiltering\x12`\n" +
	"\x0fresource_scopes\x18\x01 \x03(\v2+.yandex.cloud.audittrails.v1.Trail.ResourceB\n" +
	"\x82\xc81\x061-1024R\x0eresourceScopes\x1a\x81\x02\n" +
	"\x0fFilteringPolicy\x12|\n" +
	"\x18management_events_filter\x18\x01 \x01(\v2<.yandex.cloud.audittrails.v1.Trail.ManagementEventsFilteringB\x04\xe8\xc71\x00R\x16managementEventsFilter\x12p\n" +
	"\x13data_events_filters\x18\x02 \x03(\v26.yandex.cloud.audittrails.v1.Trail.DataEventsFilteringB\b\x82\xc81\x04<128R\x11dataEventsFilters\x1a]\n" +
	"\x13DnsDataEventsFilter\x12@\n" +
	"\x1cinclude_nonrecursive_queries\x18\x02 \x01(\bR\x1aincludeNonrecursiveQueriesJ\x04\b\x01\x10\x02\"D\n" +
	"\x06Status\x12\x16\n" +
	"\x12STATUS_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06ACTIVE\x10\x01\x12\t\n" +
	"\x05ERROR\x10\x02\x12\v\n" +
	"\aDELETED\x10\x03\";\n" +
	"\x05Codec\x12\x15\n" +
	"\x11CODEC_UNSPECIFIED\x10\x00\x12\a\n" +
	"\x03RAW\x10\x01\x12\b\n" +
	"\x04GZIP\x10\x02\x12\b\n" +
	"\x04ZSTD\x10\x03\"_\n" +
	"\x13EventCategoryFilter\x12%\n" +
	"!EVENT_CATEGORY_FILTER_UNSPECIFIED\x10\x00\x12\x11\n" +
	"\rCONTROL_PLANE\x10\x01\x12\x0e\n" +
	"\n" +
	"DATA_PLANE\x10\x02\"V\n" +
	"\x15EventAccessTypeFilter\x12(\n" +
	"$EVENT_ACCESS_TYPE_FILTER_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05WRITE\x10\x01\x12\b\n" +
	"\x04READ\x10\x02J\x04\b\r\x10\x0eBr\n" +
	"\x1fyandex.cloud.api.audittrails.v1B\x02ATZKgithub.com/yandex-cloud/go-genproto/yandex/cloud/audittrails/v1;audittrailsb\x06proto3"

var (
	file_yandex_cloud_audittrails_v1_trail_proto_rawDescOnce sync.Once
	file_yandex_cloud_audittrails_v1_trail_proto_rawDescData []byte
)

func file_yandex_cloud_audittrails_v1_trail_proto_rawDescGZIP() []byte {
	file_yandex_cloud_audittrails_v1_trail_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_audittrails_v1_trail_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_audittrails_v1_trail_proto_rawDesc), len(file_yandex_cloud_audittrails_v1_trail_proto_rawDesc)))
	})
	return file_yandex_cloud_audittrails_v1_trail_proto_rawDescData
}

var file_yandex_cloud_audittrails_v1_trail_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_yandex_cloud_audittrails_v1_trail_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_yandex_cloud_audittrails_v1_trail_proto_goTypes = []any{
	(Trail_Status)(0),                        // 0: yandex.cloud.audittrails.v1.Trail.Status
	(Trail_Codec)(0),                         // 1: yandex.cloud.audittrails.v1.Trail.Codec
	(Trail_EventCategoryFilter)(0),           // 2: yandex.cloud.audittrails.v1.Trail.EventCategoryFilter
	(Trail_EventAccessTypeFilter)(0),         // 3: yandex.cloud.audittrails.v1.Trail.EventAccessTypeFilter
	(*Trail)(nil),                            // 4: yandex.cloud.audittrails.v1.Trail
	nil,                                      // 5: yandex.cloud.audittrails.v1.Trail.LabelsEntry
	(*Trail_Destination)(nil),                // 6: yandex.cloud.audittrails.v1.Trail.Destination
	(*Trail_ObjectStorage)(nil),              // 7: yandex.cloud.audittrails.v1.Trail.ObjectStorage
	(*Trail_CloudLogging)(nil),               // 8: yandex.cloud.audittrails.v1.Trail.CloudLogging
	(*Trail_DataStream)(nil),                 // 9: yandex.cloud.audittrails.v1.Trail.DataStream
	(*Trail_EventRouter)(nil),                // 10: yandex.cloud.audittrails.v1.Trail.EventRouter
	(*Trail_Filter)(nil),                     // 11: yandex.cloud.audittrails.v1.Trail.Filter
	(*Trail_PathFilter)(nil),                 // 12: yandex.cloud.audittrails.v1.Trail.PathFilter
	(*Trail_PathFilterElement)(nil),          // 13: yandex.cloud.audittrails.v1.Trail.PathFilterElement
	(*Trail_PathFilterElementAny)(nil),       // 14: yandex.cloud.audittrails.v1.Trail.PathFilterElementAny
	(*Trail_PathFilterElementSome)(nil),      // 15: yandex.cloud.audittrails.v1.Trail.PathFilterElementSome
	(*Trail_Resource)(nil),                   // 16: yandex.cloud.audittrails.v1.Trail.Resource
	(*Trail_EventFilter)(nil),                // 17: yandex.cloud.audittrails.v1.Trail.EventFilter
	(*Trail_EventFilterElement)(nil),         // 18: yandex.cloud.audittrails.v1.Trail.EventFilterElement
	(*Trail_EventFilterElementCategory)(nil), // 19: yandex.cloud.audittrails.v1.Trail.EventFilterElementCategory
	(*Trail_DataEventsFiltering)(nil),        // 20: yandex.cloud.audittrails.v1.Trail.DataEventsFiltering
	(*Trail_EventTypes)(nil),                 // 21: yandex.cloud.audittrails.v1.Trail.EventTypes
	(*Trail_ManagementEventsFiltering)(nil),  // 22: yandex.cloud.audittrails.v1.Trail.ManagementEventsFiltering
	(*Trail_FilteringPolicy)(nil),            // 23: yandex.cloud.audittrails.v1.Trail.FilteringPolicy
	(*Trail_DnsDataEventsFilter)(nil),        // 24: yandex.cloud.audittrails.v1.Trail.DnsDataEventsFilter
	(*timestamppb.Timestamp)(nil),            // 25: google.protobuf.Timestamp
}
var file_yandex_cloud_audittrails_v1_trail_proto_depIdxs = []int32{
	25, // 0: yandex.cloud.audittrails.v1.Trail.created_at:type_name -> google.protobuf.Timestamp
	25, // 1: yandex.cloud.audittrails.v1.Trail.updated_at:type_name -> google.protobuf.Timestamp
	5,  // 2: yandex.cloud.audittrails.v1.Trail.labels:type_name -> yandex.cloud.audittrails.v1.Trail.LabelsEntry
	6,  // 3: yandex.cloud.audittrails.v1.Trail.destination:type_name -> yandex.cloud.audittrails.v1.Trail.Destination
	0,  // 4: yandex.cloud.audittrails.v1.Trail.status:type_name -> yandex.cloud.audittrails.v1.Trail.Status
	11, // 5: yandex.cloud.audittrails.v1.Trail.filter:type_name -> yandex.cloud.audittrails.v1.Trail.Filter
	23, // 6: yandex.cloud.audittrails.v1.Trail.filtering_policy:type_name -> yandex.cloud.audittrails.v1.Trail.FilteringPolicy
	7,  // 7: yandex.cloud.audittrails.v1.Trail.Destination.object_storage:type_name -> yandex.cloud.audittrails.v1.Trail.ObjectStorage
	8,  // 8: yandex.cloud.audittrails.v1.Trail.Destination.cloud_logging:type_name -> yandex.cloud.audittrails.v1.Trail.CloudLogging
	9,  // 9: yandex.cloud.audittrails.v1.Trail.Destination.data_stream:type_name -> yandex.cloud.audittrails.v1.Trail.DataStream
	10, // 10: yandex.cloud.audittrails.v1.Trail.Destination.eventrouter:type_name -> yandex.cloud.audittrails.v1.Trail.EventRouter
	1,  // 11: yandex.cloud.audittrails.v1.Trail.DataStream.codec:type_name -> yandex.cloud.audittrails.v1.Trail.Codec
	12, // 12: yandex.cloud.audittrails.v1.Trail.Filter.path_filter:type_name -> yandex.cloud.audittrails.v1.Trail.PathFilter
	17, // 13: yandex.cloud.audittrails.v1.Trail.Filter.event_filter:type_name -> yandex.cloud.audittrails.v1.Trail.EventFilter
	13, // 14: yandex.cloud.audittrails.v1.Trail.PathFilter.root:type_name -> yandex.cloud.audittrails.v1.Trail.PathFilterElement
	14, // 15: yandex.cloud.audittrails.v1.Trail.PathFilterElement.any_filter:type_name -> yandex.cloud.audittrails.v1.Trail.PathFilterElementAny
	15, // 16: yandex.cloud.audittrails.v1.Trail.PathFilterElement.some_filter:type_name -> yandex.cloud.audittrails.v1.Trail.PathFilterElementSome
	16, // 17: yandex.cloud.audittrails.v1.Trail.PathFilterElementAny.resource:type_name -> yandex.cloud.audittrails.v1.Trail.Resource
	16, // 18: yandex.cloud.audittrails.v1.Trail.PathFilterElementSome.resource:type_name -> yandex.cloud.audittrails.v1.Trail.Resource
	13, // 19: yandex.cloud.audittrails.v1.Trail.PathFilterElementSome.filters:type_name -> yandex.cloud.audittrails.v1.Trail.PathFilterElement
	18, // 20: yandex.cloud.audittrails.v1.Trail.EventFilter.filters:type_name -> yandex.cloud.audittrails.v1.Trail.EventFilterElement
	19, // 21: yandex.cloud.audittrails.v1.Trail.EventFilterElement.categories:type_name -> yandex.cloud.audittrails.v1.Trail.EventFilterElementCategory
	12, // 22: yandex.cloud.audittrails.v1.Trail.EventFilterElement.path_filter:type_name -> yandex.cloud.audittrails.v1.Trail.PathFilter
	2,  // 23: yandex.cloud.audittrails.v1.Trail.EventFilterElementCategory.plane:type_name -> yandex.cloud.audittrails.v1.Trail.EventCategoryFilter
	3,  // 24: yandex.cloud.audittrails.v1.Trail.EventFilterElementCategory.type:type_name -> yandex.cloud.audittrails.v1.Trail.EventAccessTypeFilter
	21, // 25: yandex.cloud.audittrails.v1.Trail.DataEventsFiltering.included_events:type_name -> yandex.cloud.audittrails.v1.Trail.EventTypes
	21, // 26: yandex.cloud.audittrails.v1.Trail.DataEventsFiltering.excluded_events:type_name -> yandex.cloud.audittrails.v1.Trail.EventTypes
	24, // 27: yandex.cloud.audittrails.v1.Trail.DataEventsFiltering.dns_filter:type_name -> yandex.cloud.audittrails.v1.Trail.DnsDataEventsFilter
	16, // 28: yandex.cloud.audittrails.v1.Trail.DataEventsFiltering.resource_scopes:type_name -> yandex.cloud.audittrails.v1.Trail.Resource
	16, // 29: yandex.cloud.audittrails.v1.Trail.ManagementEventsFiltering.resource_scopes:type_name -> yandex.cloud.audittrails.v1.Trail.Resource
	22, // 30: yandex.cloud.audittrails.v1.Trail.FilteringPolicy.management_events_filter:type_name -> yandex.cloud.audittrails.v1.Trail.ManagementEventsFiltering
	20, // 31: yandex.cloud.audittrails.v1.Trail.FilteringPolicy.data_events_filters:type_name -> yandex.cloud.audittrails.v1.Trail.DataEventsFiltering
	32, // [32:32] is the sub-list for method output_type
	32, // [32:32] is the sub-list for method input_type
	32, // [32:32] is the sub-list for extension type_name
	32, // [32:32] is the sub-list for extension extendee
	0,  // [0:32] is the sub-list for field type_name
}

func init() { file_yandex_cloud_audittrails_v1_trail_proto_init() }
func file_yandex_cloud_audittrails_v1_trail_proto_init() {
	if File_yandex_cloud_audittrails_v1_trail_proto != nil {
		return
	}
	file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[2].OneofWrappers = []any{
		(*Trail_Destination_ObjectStorage)(nil),
		(*Trail_Destination_CloudLogging)(nil),
		(*Trail_Destination_DataStream)(nil),
		(*Trail_Destination_Eventrouter)(nil),
	}
	file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[4].OneofWrappers = []any{
		(*Trail_CloudLogging_LogGroupId)(nil),
	}
	file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[9].OneofWrappers = []any{
		(*Trail_PathFilterElement_AnyFilter)(nil),
		(*Trail_PathFilterElement_SomeFilter)(nil),
	}
	file_yandex_cloud_audittrails_v1_trail_proto_msgTypes[16].OneofWrappers = []any{
		(*Trail_DataEventsFiltering_IncludedEvents)(nil),
		(*Trail_DataEventsFiltering_ExcludedEvents)(nil),
		(*Trail_DataEventsFiltering_DnsFilter)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_audittrails_v1_trail_proto_rawDesc), len(file_yandex_cloud_audittrails_v1_trail_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_audittrails_v1_trail_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_audittrails_v1_trail_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_audittrails_v1_trail_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_audittrails_v1_trail_proto_msgTypes,
	}.Build()
	File_yandex_cloud_audittrails_v1_trail_proto = out.File
	file_yandex_cloud_audittrails_v1_trail_proto_goTypes = nil
	file_yandex_cloud_audittrails_v1_trail_proto_depIdxs = nil
}
