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

package trino

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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

type CatalogAccessRule_Permission int32

const (
	CatalogAccessRule_PERMISSION_UNSPECIFIED CatalogAccessRule_Permission = 0
	// Denies all operations on the catalog entities.
	CatalogAccessRule_NONE CatalogAccessRule_Permission = 1
	// Allows all operations on catalog entities.
	CatalogAccessRule_ALL CatalogAccessRule_Permission = 2
	// Allows only read operations on catalog entities.
	CatalogAccessRule_READ_ONLY CatalogAccessRule_Permission = 3
)

// Enum value maps for CatalogAccessRule_Permission.
var (
	CatalogAccessRule_Permission_name = map[int32]string{
		0: "PERMISSION_UNSPECIFIED",
		1: "NONE",
		2: "ALL",
		3: "READ_ONLY",
	}
	CatalogAccessRule_Permission_value = map[string]int32{
		"PERMISSION_UNSPECIFIED": 0,
		"NONE":                   1,
		"ALL":                    2,
		"READ_ONLY":              3,
	}
)

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

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

func (CatalogAccessRule_Permission) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[0].Descriptor()
}

func (CatalogAccessRule_Permission) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[0]
}

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

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

type SchemaAccessRule_Owner int32

const (
	SchemaAccessRule_OWNER_UNSPECIFIED SchemaAccessRule_Owner = 0
	// User is not considered an owner of the schema.
	SchemaAccessRule_NO SchemaAccessRule_Owner = 1
	// User is considered an owner of the schema.
	SchemaAccessRule_YES SchemaAccessRule_Owner = 2
)

// Enum value maps for SchemaAccessRule_Owner.
var (
	SchemaAccessRule_Owner_name = map[int32]string{
		0: "OWNER_UNSPECIFIED",
		1: "NO",
		2: "YES",
	}
	SchemaAccessRule_Owner_value = map[string]int32{
		"OWNER_UNSPECIFIED": 0,
		"NO":                1,
		"YES":               2,
	}
)

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

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

func (SchemaAccessRule_Owner) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[1].Descriptor()
}

func (SchemaAccessRule_Owner) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[1]
}

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

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

type TableAccessRule_Privilege int32

const (
	TableAccessRule_PRIVILEGE_UNSPECIFIED TableAccessRule_Privilege = 0
	// Allows SELECT statements on the table.
	TableAccessRule_SELECT TableAccessRule_Privilege = 1
	// Allows INSERT statements on the table.
	TableAccessRule_INSERT TableAccessRule_Privilege = 2
	// Allows DELETE statements on the table.
	TableAccessRule_DELETE TableAccessRule_Privilege = 3
	// Allows UPDATE statements on the table.
	TableAccessRule_UPDATE TableAccessRule_Privilege = 4
	// Allows CREATE, DROP, COMMENT ON and ALTER statements on the table.
	TableAccessRule_OWNERSHIP TableAccessRule_Privilege = 5
	// Allows SELECT statements on the table while creating view.
	TableAccessRule_GRANT_SELECT TableAccessRule_Privilege = 6
)

// Enum value maps for TableAccessRule_Privilege.
var (
	TableAccessRule_Privilege_name = map[int32]string{
		0: "PRIVILEGE_UNSPECIFIED",
		1: "SELECT",
		2: "INSERT",
		3: "DELETE",
		4: "UPDATE",
		5: "OWNERSHIP",
		6: "GRANT_SELECT",
	}
	TableAccessRule_Privilege_value = map[string]int32{
		"PRIVILEGE_UNSPECIFIED": 0,
		"SELECT":                1,
		"INSERT":                2,
		"DELETE":                3,
		"UPDATE":                4,
		"OWNERSHIP":             5,
		"GRANT_SELECT":          6,
	}
)

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

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

func (TableAccessRule_Privilege) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[2].Descriptor()
}

func (TableAccessRule_Privilege) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[2]
}

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

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

type TableAccessRule_Column_AccessMode int32

const (
	TableAccessRule_Column_ACCESS_MODE_UNSPECIFIED TableAccessRule_Column_AccessMode = 0
	// Access to column is denied.
	TableAccessRule_Column_NONE TableAccessRule_Column_AccessMode = 1
	// Access to column is allowed.
	TableAccessRule_Column_ALL TableAccessRule_Column_AccessMode = 2
)

// Enum value maps for TableAccessRule_Column_AccessMode.
var (
	TableAccessRule_Column_AccessMode_name = map[int32]string{
		0: "ACCESS_MODE_UNSPECIFIED",
		1: "NONE",
		2: "ALL",
	}
	TableAccessRule_Column_AccessMode_value = map[string]int32{
		"ACCESS_MODE_UNSPECIFIED": 0,
		"NONE":                    1,
		"ALL":                     2,
	}
)

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

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

func (TableAccessRule_Column_AccessMode) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[3].Descriptor()
}

func (TableAccessRule_Column_AccessMode) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[3]
}

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

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

type FunctionAccessRule_Privilege int32

const (
	FunctionAccessRule_PRIVILEGE_UNSPECIFIED FunctionAccessRule_Privilege = 0
	// Allows to execute the function.
	FunctionAccessRule_EXECUTE FunctionAccessRule_Privilege = 1
	// Allows to use the function while view creation.
	FunctionAccessRule_GRANT_EXECUTE FunctionAccessRule_Privilege = 2
	// Allows to CREATE and DROP the function.
	FunctionAccessRule_OWNERSHIP FunctionAccessRule_Privilege = 3
)

// Enum value maps for FunctionAccessRule_Privilege.
var (
	FunctionAccessRule_Privilege_name = map[int32]string{
		0: "PRIVILEGE_UNSPECIFIED",
		1: "EXECUTE",
		2: "GRANT_EXECUTE",
		3: "OWNERSHIP",
	}
	FunctionAccessRule_Privilege_value = map[string]int32{
		"PRIVILEGE_UNSPECIFIED": 0,
		"EXECUTE":               1,
		"GRANT_EXECUTE":         2,
		"OWNERSHIP":             3,
	}
)

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

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

func (FunctionAccessRule_Privilege) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[4].Descriptor()
}

func (FunctionAccessRule_Privilege) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[4]
}

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

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

type ProcedureAccessRule_Privilege int32

const (
	ProcedureAccessRule_PRIVILEGE_UNSPECIFIED ProcedureAccessRule_Privilege = 0
	// Allows to execute the procedure.
	ProcedureAccessRule_EXECUTE ProcedureAccessRule_Privilege = 1
)

// Enum value maps for ProcedureAccessRule_Privilege.
var (
	ProcedureAccessRule_Privilege_name = map[int32]string{
		0: "PRIVILEGE_UNSPECIFIED",
		1: "EXECUTE",
	}
	ProcedureAccessRule_Privilege_value = map[string]int32{
		"PRIVILEGE_UNSPECIFIED": 0,
		"EXECUTE":               1,
	}
)

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

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

func (ProcedureAccessRule_Privilege) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[5].Descriptor()
}

func (ProcedureAccessRule_Privilege) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[5]
}

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

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

type QueryAccessRule_Privilege int32

const (
	QueryAccessRule_PRIVILEGE_UNSPECIFIED QueryAccessRule_Privilege = 0
	// Allows to view the query.
	QueryAccessRule_VIEW QueryAccessRule_Privilege = 1
	// Allows to execute the query.
	QueryAccessRule_EXECUTE QueryAccessRule_Privilege = 2
	// Allows to kill the query.
	QueryAccessRule_KILL QueryAccessRule_Privilege = 3
)

// Enum value maps for QueryAccessRule_Privilege.
var (
	QueryAccessRule_Privilege_name = map[int32]string{
		0: "PRIVILEGE_UNSPECIFIED",
		1: "VIEW",
		2: "EXECUTE",
		3: "KILL",
	}
	QueryAccessRule_Privilege_value = map[string]int32{
		"PRIVILEGE_UNSPECIFIED": 0,
		"VIEW":                  1,
		"EXECUTE":               2,
		"KILL":                  3,
	}
)

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

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

func (QueryAccessRule_Privilege) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[6].Descriptor()
}

func (QueryAccessRule_Privilege) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[6]
}

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

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

type SystemSessionPropertyAccessRule_Allow int32

const (
	SystemSessionPropertyAccessRule_ALLOW_UNSPECIFIED SystemSessionPropertyAccessRule_Allow = 0
	// Denies setting the system session property.
	SystemSessionPropertyAccessRule_NO SystemSessionPropertyAccessRule_Allow = 1
	// Allows to set the system session property.
	SystemSessionPropertyAccessRule_YES SystemSessionPropertyAccessRule_Allow = 2
)

// Enum value maps for SystemSessionPropertyAccessRule_Allow.
var (
	SystemSessionPropertyAccessRule_Allow_name = map[int32]string{
		0: "ALLOW_UNSPECIFIED",
		1: "NO",
		2: "YES",
	}
	SystemSessionPropertyAccessRule_Allow_value = map[string]int32{
		"ALLOW_UNSPECIFIED": 0,
		"NO":                1,
		"YES":               2,
	}
)

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

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

func (SystemSessionPropertyAccessRule_Allow) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[7].Descriptor()
}

func (SystemSessionPropertyAccessRule_Allow) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[7]
}

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

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

type CatalogSessionPropertyAccessRule_Allow int32

const (
	CatalogSessionPropertyAccessRule_ALLOW_UNSPECIFIED CatalogSessionPropertyAccessRule_Allow = 0
	// Denies setting the catalog session property.
	CatalogSessionPropertyAccessRule_NO CatalogSessionPropertyAccessRule_Allow = 1
	// Allows to set the catalog session property.
	CatalogSessionPropertyAccessRule_YES CatalogSessionPropertyAccessRule_Allow = 2
)

// Enum value maps for CatalogSessionPropertyAccessRule_Allow.
var (
	CatalogSessionPropertyAccessRule_Allow_name = map[int32]string{
		0: "ALLOW_UNSPECIFIED",
		1: "NO",
		2: "YES",
	}
	CatalogSessionPropertyAccessRule_Allow_value = map[string]int32{
		"ALLOW_UNSPECIFIED": 0,
		"NO":                1,
		"YES":               2,
	}
)

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

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

func (CatalogSessionPropertyAccessRule_Allow) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_trino_v1_access_control_proto_enumTypes[8].Descriptor()
}

func (CatalogSessionPropertyAccessRule_Allow) Type() protoreflect.EnumType {
	return &file_yandex_cloud_trino_v1_access_control_proto_enumTypes[8]
}

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

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

type AccessControlConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Catalog access control rules.
	Catalogs []*CatalogAccessRule `protobuf:"bytes,1,rep,name=catalogs,proto3" json:"catalogs,omitempty"`
	// Schema access control rules.
	Schemas []*SchemaAccessRule `protobuf:"bytes,2,rep,name=schemas,proto3" json:"schemas,omitempty"`
	// Table access control rules.
	Tables []*TableAccessRule `protobuf:"bytes,3,rep,name=tables,proto3" json:"tables,omitempty"`
	// Function access control rules.
	Functions []*FunctionAccessRule `protobuf:"bytes,4,rep,name=functions,proto3" json:"functions,omitempty"`
	// Procedures access control rules.
	Procedures []*ProcedureAccessRule `protobuf:"bytes,5,rep,name=procedures,proto3" json:"procedures,omitempty"`
	// Queries access control rules.
	Queries []*QueryAccessRule `protobuf:"bytes,6,rep,name=queries,proto3" json:"queries,omitempty"`
	// System session property access control rules.
	SystemSessionProperties []*SystemSessionPropertyAccessRule `protobuf:"bytes,7,rep,name=system_session_properties,json=systemSessionProperties,proto3" json:"system_session_properties,omitempty"`
	// Catalog session property access control rules.
	CatalogSessionProperties []*CatalogSessionPropertyAccessRule `protobuf:"bytes,8,rep,name=catalog_session_properties,json=catalogSessionProperties,proto3" json:"catalog_session_properties,omitempty"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

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

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

func (*AccessControlConfig) ProtoMessage() {}

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

func (x *AccessControlConfig) GetCatalogs() []*CatalogAccessRule {
	if x != nil {
		return x.Catalogs
	}
	return nil
}

func (x *AccessControlConfig) GetSchemas() []*SchemaAccessRule {
	if x != nil {
		return x.Schemas
	}
	return nil
}

func (x *AccessControlConfig) GetTables() []*TableAccessRule {
	if x != nil {
		return x.Tables
	}
	return nil
}

func (x *AccessControlConfig) GetFunctions() []*FunctionAccessRule {
	if x != nil {
		return x.Functions
	}
	return nil
}

func (x *AccessControlConfig) GetProcedures() []*ProcedureAccessRule {
	if x != nil {
		return x.Procedures
	}
	return nil
}

func (x *AccessControlConfig) GetQueries() []*QueryAccessRule {
	if x != nil {
		return x.Queries
	}
	return nil
}

func (x *AccessControlConfig) GetSystemSessionProperties() []*SystemSessionPropertyAccessRule {
	if x != nil {
		return x.SystemSessionProperties
	}
	return nil
}

func (x *AccessControlConfig) GetCatalogSessionProperties() []*CatalogSessionPropertyAccessRule {
	if x != nil {
		return x.CatalogSessionProperties
	}
	return nil
}

type CatalogAccessRuleMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MatchBy:
	//
	//	*CatalogAccessRuleMatcher_NameRegexp
	//	*CatalogAccessRuleMatcher_Ids
	//	*CatalogAccessRuleMatcher_Names
	MatchBy       isCatalogAccessRuleMatcher_MatchBy `protobuf_oneof:"match_by"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CatalogAccessRuleMatcher) ProtoMessage() {}

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

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

func (x *CatalogAccessRuleMatcher) GetMatchBy() isCatalogAccessRuleMatcher_MatchBy {
	if x != nil {
		return x.MatchBy
	}
	return nil
}

func (x *CatalogAccessRuleMatcher) GetNameRegexp() string {
	if x != nil {
		if x, ok := x.MatchBy.(*CatalogAccessRuleMatcher_NameRegexp); ok {
			return x.NameRegexp
		}
	}
	return ""
}

func (x *CatalogAccessRuleMatcher) GetIds() *CatalogAccessRuleMatcher_CatalogIds {
	if x != nil {
		if x, ok := x.MatchBy.(*CatalogAccessRuleMatcher_Ids); ok {
			return x.Ids
		}
	}
	return nil
}

func (x *CatalogAccessRuleMatcher) GetNames() *CatalogAccessRuleMatcher_CatalogNames {
	if x != nil {
		if x, ok := x.MatchBy.(*CatalogAccessRuleMatcher_Names); ok {
			return x.Names
		}
	}
	return nil
}

type isCatalogAccessRuleMatcher_MatchBy interface {
	isCatalogAccessRuleMatcher_MatchBy()
}

type CatalogAccessRuleMatcher_NameRegexp struct {
	// Catalog name regexp the rule is applied to.
	NameRegexp string `protobuf:"bytes,3,opt,name=name_regexp,json=nameRegexp,proto3,oneof"`
}

type CatalogAccessRuleMatcher_Ids struct {
	// Catalog IDs rule is applied to.
	Ids *CatalogAccessRuleMatcher_CatalogIds `protobuf:"bytes,4,opt,name=ids,proto3,oneof"`
}

type CatalogAccessRuleMatcher_Names struct {
	// Catalog names rule is applied to.
	Names *CatalogAccessRuleMatcher_CatalogNames `protobuf:"bytes,5,opt,name=names,proto3,oneof"`
}

func (*CatalogAccessRuleMatcher_NameRegexp) isCatalogAccessRuleMatcher_MatchBy() {}

func (*CatalogAccessRuleMatcher_Ids) isCatalogAccessRuleMatcher_MatchBy() {}

func (*CatalogAccessRuleMatcher_Names) isCatalogAccessRuleMatcher_MatchBy() {}

type SchemaAccessRuleMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MatchBy:
	//
	//	*SchemaAccessRuleMatcher_NameRegexp
	//	*SchemaAccessRuleMatcher_Names
	MatchBy       isSchemaAccessRuleMatcher_MatchBy `protobuf_oneof:"match_by"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SchemaAccessRuleMatcher) ProtoMessage() {}

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

func (x *SchemaAccessRuleMatcher) GetMatchBy() isSchemaAccessRuleMatcher_MatchBy {
	if x != nil {
		return x.MatchBy
	}
	return nil
}

func (x *SchemaAccessRuleMatcher) GetNameRegexp() string {
	if x != nil {
		if x, ok := x.MatchBy.(*SchemaAccessRuleMatcher_NameRegexp); ok {
			return x.NameRegexp
		}
	}
	return ""
}

func (x *SchemaAccessRuleMatcher) GetNames() *SchemaAccessRuleMatcher_SchemaNames {
	if x != nil {
		if x, ok := x.MatchBy.(*SchemaAccessRuleMatcher_Names); ok {
			return x.Names
		}
	}
	return nil
}

type isSchemaAccessRuleMatcher_MatchBy interface {
	isSchemaAccessRuleMatcher_MatchBy()
}

type SchemaAccessRuleMatcher_NameRegexp struct {
	// Schema name regexp the rule is applied to.
	NameRegexp string `protobuf:"bytes,2,opt,name=name_regexp,json=nameRegexp,proto3,oneof"`
}

type SchemaAccessRuleMatcher_Names struct {
	// Schema names the rule is applied to.
	Names *SchemaAccessRuleMatcher_SchemaNames `protobuf:"bytes,3,opt,name=names,proto3,oneof"`
}

func (*SchemaAccessRuleMatcher_NameRegexp) isSchemaAccessRuleMatcher_MatchBy() {}

func (*SchemaAccessRuleMatcher_Names) isSchemaAccessRuleMatcher_MatchBy() {}

type TableAccessRuleMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MatchBy:
	//
	//	*TableAccessRuleMatcher_NameRegexp
	//	*TableAccessRuleMatcher_Names
	MatchBy       isTableAccessRuleMatcher_MatchBy `protobuf_oneof:"match_by"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TableAccessRuleMatcher) ProtoMessage() {}

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

func (x *TableAccessRuleMatcher) GetMatchBy() isTableAccessRuleMatcher_MatchBy {
	if x != nil {
		return x.MatchBy
	}
	return nil
}

func (x *TableAccessRuleMatcher) GetNameRegexp() string {
	if x != nil {
		if x, ok := x.MatchBy.(*TableAccessRuleMatcher_NameRegexp); ok {
			return x.NameRegexp
		}
	}
	return ""
}

func (x *TableAccessRuleMatcher) GetNames() *TableAccessRuleMatcher_TableNames {
	if x != nil {
		if x, ok := x.MatchBy.(*TableAccessRuleMatcher_Names); ok {
			return x.Names
		}
	}
	return nil
}

type isTableAccessRuleMatcher_MatchBy interface {
	isTableAccessRuleMatcher_MatchBy()
}

type TableAccessRuleMatcher_NameRegexp struct {
	// Table name regexp the rule is applied to.
	NameRegexp string `protobuf:"bytes,2,opt,name=name_regexp,json=nameRegexp,proto3,oneof"`
}

type TableAccessRuleMatcher_Names struct {
	// Table names the rule is applied to.
	Names *TableAccessRuleMatcher_TableNames `protobuf:"bytes,3,opt,name=names,proto3,oneof"`
}

func (*TableAccessRuleMatcher_NameRegexp) isTableAccessRuleMatcher_MatchBy() {}

func (*TableAccessRuleMatcher_Names) isTableAccessRuleMatcher_MatchBy() {}

type FunctionAccessRuleMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MatchBy:
	//
	//	*FunctionAccessRuleMatcher_NameRegexp
	//	*FunctionAccessRuleMatcher_Names
	MatchBy       isFunctionAccessRuleMatcher_MatchBy `protobuf_oneof:"match_by"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FunctionAccessRuleMatcher) ProtoMessage() {}

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

func (x *FunctionAccessRuleMatcher) GetMatchBy() isFunctionAccessRuleMatcher_MatchBy {
	if x != nil {
		return x.MatchBy
	}
	return nil
}

func (x *FunctionAccessRuleMatcher) GetNameRegexp() string {
	if x != nil {
		if x, ok := x.MatchBy.(*FunctionAccessRuleMatcher_NameRegexp); ok {
			return x.NameRegexp
		}
	}
	return ""
}

func (x *FunctionAccessRuleMatcher) GetNames() *FunctionAccessRuleMatcher_FunctionNames {
	if x != nil {
		if x, ok := x.MatchBy.(*FunctionAccessRuleMatcher_Names); ok {
			return x.Names
		}
	}
	return nil
}

type isFunctionAccessRuleMatcher_MatchBy interface {
	isFunctionAccessRuleMatcher_MatchBy()
}

type FunctionAccessRuleMatcher_NameRegexp struct {
	// Function name regexp the rule is applied to.
	NameRegexp string `protobuf:"bytes,2,opt,name=name_regexp,json=nameRegexp,proto3,oneof"`
}

type FunctionAccessRuleMatcher_Names struct {
	// Function names the rule is applied to.
	Names *FunctionAccessRuleMatcher_FunctionNames `protobuf:"bytes,3,opt,name=names,proto3,oneof"`
}

func (*FunctionAccessRuleMatcher_NameRegexp) isFunctionAccessRuleMatcher_MatchBy() {}

func (*FunctionAccessRuleMatcher_Names) isFunctionAccessRuleMatcher_MatchBy() {}

type ProcedureAccessRuleMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MatchBy:
	//
	//	*ProcedureAccessRuleMatcher_NameRegexp
	//	*ProcedureAccessRuleMatcher_Names
	MatchBy       isProcedureAccessRuleMatcher_MatchBy `protobuf_oneof:"match_by"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ProcedureAccessRuleMatcher) ProtoMessage() {}

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

func (x *ProcedureAccessRuleMatcher) GetMatchBy() isProcedureAccessRuleMatcher_MatchBy {
	if x != nil {
		return x.MatchBy
	}
	return nil
}

func (x *ProcedureAccessRuleMatcher) GetNameRegexp() string {
	if x != nil {
		if x, ok := x.MatchBy.(*ProcedureAccessRuleMatcher_NameRegexp); ok {
			return x.NameRegexp
		}
	}
	return ""
}

func (x *ProcedureAccessRuleMatcher) GetNames() *ProcedureAccessRuleMatcher_ProcedureNames {
	if x != nil {
		if x, ok := x.MatchBy.(*ProcedureAccessRuleMatcher_Names); ok {
			return x.Names
		}
	}
	return nil
}

type isProcedureAccessRuleMatcher_MatchBy interface {
	isProcedureAccessRuleMatcher_MatchBy()
}

type ProcedureAccessRuleMatcher_NameRegexp struct {
	// Procedure name regexp the rule is applied to.
	NameRegexp string `protobuf:"bytes,2,opt,name=name_regexp,json=nameRegexp,proto3,oneof"`
}

type ProcedureAccessRuleMatcher_Names struct {
	// Procedure names the rule is applied to.
	Names *ProcedureAccessRuleMatcher_ProcedureNames `protobuf:"bytes,3,opt,name=names,proto3,oneof"`
}

func (*ProcedureAccessRuleMatcher_NameRegexp) isProcedureAccessRuleMatcher_MatchBy() {}

func (*ProcedureAccessRuleMatcher_Names) isProcedureAccessRuleMatcher_MatchBy() {}

type PropertyAccessRuleMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MatchBy:
	//
	//	*PropertyAccessRuleMatcher_NameRegexp
	//	*PropertyAccessRuleMatcher_Names
	MatchBy       isPropertyAccessRuleMatcher_MatchBy `protobuf_oneof:"match_by"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PropertyAccessRuleMatcher) ProtoMessage() {}

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

func (x *PropertyAccessRuleMatcher) GetMatchBy() isPropertyAccessRuleMatcher_MatchBy {
	if x != nil {
		return x.MatchBy
	}
	return nil
}

func (x *PropertyAccessRuleMatcher) GetNameRegexp() string {
	if x != nil {
		if x, ok := x.MatchBy.(*PropertyAccessRuleMatcher_NameRegexp); ok {
			return x.NameRegexp
		}
	}
	return ""
}

func (x *PropertyAccessRuleMatcher) GetNames() *PropertyAccessRuleMatcher_PropertyNames {
	if x != nil {
		if x, ok := x.MatchBy.(*PropertyAccessRuleMatcher_Names); ok {
			return x.Names
		}
	}
	return nil
}

type isPropertyAccessRuleMatcher_MatchBy interface {
	isPropertyAccessRuleMatcher_MatchBy()
}

type PropertyAccessRuleMatcher_NameRegexp struct {
	// Property name regexp the rule is applied to.
	NameRegexp string `protobuf:"bytes,2,opt,name=name_regexp,json=nameRegexp,proto3,oneof"`
}

type PropertyAccessRuleMatcher_Names struct {
	// Property names the rule is applied to.
	Names *PropertyAccessRuleMatcher_PropertyNames `protobuf:"bytes,3,opt,name=names,proto3,oneof"`
}

func (*PropertyAccessRuleMatcher_NameRegexp) isPropertyAccessRuleMatcher_MatchBy() {}

func (*PropertyAccessRuleMatcher_Names) isPropertyAccessRuleMatcher_MatchBy() {}

type CatalogAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Catalog matcher specifying what catalogs the rule is applied to.
	Catalog *CatalogAccessRuleMatcher `protobuf:"bytes,4,opt,name=catalog,proto3" json:"catalog,omitempty"`
	// Permission granted by the rule.
	Permission CatalogAccessRule_Permission `protobuf:"varint,5,opt,name=permission,proto3,enum=yandex.cloud.trino.v1.CatalogAccessRule_Permission" json:"permission,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CatalogAccessRule) ProtoMessage() {}

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

func (x *CatalogAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *CatalogAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *CatalogAccessRule) GetCatalog() *CatalogAccessRuleMatcher {
	if x != nil {
		return x.Catalog
	}
	return nil
}

func (x *CatalogAccessRule) GetPermission() CatalogAccessRule_Permission {
	if x != nil {
		return x.Permission
	}
	return CatalogAccessRule_PERMISSION_UNSPECIFIED
}

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

type SchemaAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Catalog matcher specifying what catalogs the rule is applied to.
	Catalog *CatalogAccessRuleMatcher `protobuf:"bytes,4,opt,name=catalog,proto3" json:"catalog,omitempty"`
	// Schema matcher specifying what schemas the rule is applied to.
	Schema *SchemaAccessRuleMatcher `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"`
	// Ownership granted by the rule.
	Owner SchemaAccessRule_Owner `protobuf:"varint,6,opt,name=owner,proto3,enum=yandex.cloud.trino.v1.SchemaAccessRule_Owner" json:"owner,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SchemaAccessRule) ProtoMessage() {}

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

func (x *SchemaAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *SchemaAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *SchemaAccessRule) GetCatalog() *CatalogAccessRuleMatcher {
	if x != nil {
		return x.Catalog
	}
	return nil
}

func (x *SchemaAccessRule) GetSchema() *SchemaAccessRuleMatcher {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *SchemaAccessRule) GetOwner() SchemaAccessRule_Owner {
	if x != nil {
		return x.Owner
	}
	return SchemaAccessRule_OWNER_UNSPECIFIED
}

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

type TableAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Catalog matcher specifying what catalogs the rule is applied to.
	Catalog *CatalogAccessRuleMatcher `protobuf:"bytes,4,opt,name=catalog,proto3" json:"catalog,omitempty"`
	// Schema matcher specifying what schemas the rule is applied to.
	Schema *SchemaAccessRuleMatcher `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"`
	// Table matcher specifying what tables the rule is applied to.
	Table *TableAccessRuleMatcher `protobuf:"bytes,6,opt,name=table,proto3" json:"table,omitempty"`
	// Permission granted by the rule.
	Privileges []TableAccessRule_Privilege `protobuf:"varint,7,rep,packed,name=privileges,proto3,enum=yandex.cloud.trino.v1.TableAccessRule_Privilege" json:"privileges,omitempty"`
	// Column rules.
	Columns []*TableAccessRule_Column `protobuf:"bytes,8,rep,name=columns,proto3" json:"columns,omitempty"`
	// Boolean SQL expression to filter table rows for particular user.
	Filter string `protobuf:"bytes,9,opt,name=filter,proto3" json:"filter,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,11,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TableAccessRule) ProtoMessage() {}

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

func (x *TableAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *TableAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *TableAccessRule) GetCatalog() *CatalogAccessRuleMatcher {
	if x != nil {
		return x.Catalog
	}
	return nil
}

func (x *TableAccessRule) GetSchema() *SchemaAccessRuleMatcher {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *TableAccessRule) GetTable() *TableAccessRuleMatcher {
	if x != nil {
		return x.Table
	}
	return nil
}

func (x *TableAccessRule) GetPrivileges() []TableAccessRule_Privilege {
	if x != nil {
		return x.Privileges
	}
	return nil
}

func (x *TableAccessRule) GetColumns() []*TableAccessRule_Column {
	if x != nil {
		return x.Columns
	}
	return nil
}

func (x *TableAccessRule) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

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

type FunctionAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Catalog matcher specifying what catalogs the rule is applied to.
	Catalog *CatalogAccessRuleMatcher `protobuf:"bytes,4,opt,name=catalog,proto3" json:"catalog,omitempty"`
	// Schema matcher specifying what schema the rule is applied to.
	Schema *SchemaAccessRuleMatcher `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"`
	// Function matcher specifying what functions the rule is applied to.
	Function *FunctionAccessRuleMatcher `protobuf:"bytes,6,opt,name=function,proto3" json:"function,omitempty"`
	// Privileges granted by the rule.
	Privileges []FunctionAccessRule_Privilege `protobuf:"varint,7,rep,packed,name=privileges,proto3,enum=yandex.cloud.trino.v1.FunctionAccessRule_Privilege" json:"privileges,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FunctionAccessRule) ProtoMessage() {}

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

func (x *FunctionAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *FunctionAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *FunctionAccessRule) GetCatalog() *CatalogAccessRuleMatcher {
	if x != nil {
		return x.Catalog
	}
	return nil
}

func (x *FunctionAccessRule) GetSchema() *SchemaAccessRuleMatcher {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *FunctionAccessRule) GetFunction() *FunctionAccessRuleMatcher {
	if x != nil {
		return x.Function
	}
	return nil
}

func (x *FunctionAccessRule) GetPrivileges() []FunctionAccessRule_Privilege {
	if x != nil {
		return x.Privileges
	}
	return nil
}

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

type ProcedureAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Catalog matcher specifying what catalogs the rule is applied to.
	Catalog *CatalogAccessRuleMatcher `protobuf:"bytes,4,opt,name=catalog,proto3" json:"catalog,omitempty"`
	// Schema matcher specifying what schema the rule is applied to.
	Schema *SchemaAccessRuleMatcher `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"`
	// Procedure matcher specifying what functions the rule is applied to.
	Procedure *ProcedureAccessRuleMatcher `protobuf:"bytes,6,opt,name=procedure,proto3" json:"procedure,omitempty"`
	// Privileges granted by the rule.
	Privileges []ProcedureAccessRule_Privilege `protobuf:"varint,7,rep,packed,name=privileges,proto3,enum=yandex.cloud.trino.v1.ProcedureAccessRule_Privilege" json:"privileges,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ProcedureAccessRule) ProtoMessage() {}

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

func (x *ProcedureAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *ProcedureAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *ProcedureAccessRule) GetCatalog() *CatalogAccessRuleMatcher {
	if x != nil {
		return x.Catalog
	}
	return nil
}

func (x *ProcedureAccessRule) GetSchema() *SchemaAccessRuleMatcher {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *ProcedureAccessRule) GetProcedure() *ProcedureAccessRuleMatcher {
	if x != nil {
		return x.Procedure
	}
	return nil
}

func (x *ProcedureAccessRule) GetPrivileges() []ProcedureAccessRule_Privilege {
	if x != nil {
		return x.Privileges
	}
	return nil
}

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

type QueryAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Owners of queries the rule is applied to.
	// Cannot be combined with EXECUTE privilege.
	QueryOwners []string `protobuf:"bytes,4,rep,name=query_owners,json=queryOwners,proto3" json:"query_owners,omitempty"`
	// Privileges granted by the user.
	Privileges []QueryAccessRule_Privilege `protobuf:"varint,5,rep,packed,name=privileges,proto3,enum=yandex.cloud.trino.v1.QueryAccessRule_Privilege" json:"privileges,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*QueryAccessRule) ProtoMessage() {}

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

func (x *QueryAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *QueryAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *QueryAccessRule) GetQueryOwners() []string {
	if x != nil {
		return x.QueryOwners
	}
	return nil
}

func (x *QueryAccessRule) GetPrivileges() []QueryAccessRule_Privilege {
	if x != nil {
		return x.Privileges
	}
	return nil
}

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

type SystemSessionPropertyAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Property matcher specifying what properties the rule is applied to.
	Property *PropertyAccessRuleMatcher `protobuf:"bytes,4,opt,name=property,proto3" json:"property,omitempty"`
	// Whether the rule allows setting the property.
	Allow SystemSessionPropertyAccessRule_Allow `protobuf:"varint,5,opt,name=allow,proto3,enum=yandex.cloud.trino.v1.SystemSessionPropertyAccessRule_Allow" json:"allow,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SystemSessionPropertyAccessRule) ProtoMessage() {}

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

func (x *SystemSessionPropertyAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *SystemSessionPropertyAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *SystemSessionPropertyAccessRule) GetProperty() *PropertyAccessRuleMatcher {
	if x != nil {
		return x.Property
	}
	return nil
}

func (x *SystemSessionPropertyAccessRule) GetAllow() SystemSessionPropertyAccessRule_Allow {
	if x != nil {
		return x.Allow
	}
	return SystemSessionPropertyAccessRule_ALLOW_UNSPECIFIED
}

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

type CatalogSessionPropertyAccessRule struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// IAM user IDs the rule is applied to.
	Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// IAM group IDs the rule is applied to.
	Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
	// Catalog matcher specifying what catalogs the rule is applied to.
	Catalog *CatalogAccessRuleMatcher `protobuf:"bytes,4,opt,name=catalog,proto3" json:"catalog,omitempty"`
	// Property matcher specifying what properties the rule is applied to.
	Property *PropertyAccessRuleMatcher `protobuf:"bytes,5,opt,name=property,proto3" json:"property,omitempty"`
	// Whether the rule allows setting the property.
	Allow CatalogSessionPropertyAccessRule_Allow `protobuf:"varint,6,opt,name=allow,proto3,enum=yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule_Allow" json:"allow,omitempty"`
	// Rule description.
	Description   string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CatalogSessionPropertyAccessRule) ProtoMessage() {}

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

func (x *CatalogSessionPropertyAccessRule) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *CatalogSessionPropertyAccessRule) GetGroups() []string {
	if x != nil {
		return x.Groups
	}
	return nil
}

func (x *CatalogSessionPropertyAccessRule) GetCatalog() *CatalogAccessRuleMatcher {
	if x != nil {
		return x.Catalog
	}
	return nil
}

func (x *CatalogSessionPropertyAccessRule) GetProperty() *PropertyAccessRuleMatcher {
	if x != nil {
		return x.Property
	}
	return nil
}

func (x *CatalogSessionPropertyAccessRule) GetAllow() CatalogSessionPropertyAccessRule_Allow {
	if x != nil {
		return x.Allow
	}
	return CatalogSessionPropertyAccessRule_ALLOW_UNSPECIFIED
}

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

type CatalogAccessRuleMatcher_CatalogIds struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CatalogAccessRuleMatcher_CatalogIds) ProtoMessage() {}

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

func (x *CatalogAccessRuleMatcher_CatalogIds) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type CatalogAccessRuleMatcher_CatalogNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CatalogAccessRuleMatcher_CatalogNames) ProtoMessage() {}

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

func (x *CatalogAccessRuleMatcher_CatalogNames) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type SchemaAccessRuleMatcher_SchemaNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SchemaAccessRuleMatcher_SchemaNames) ProtoMessage() {}

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

func (x *SchemaAccessRuleMatcher_SchemaNames) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type TableAccessRuleMatcher_TableNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TableAccessRuleMatcher_TableNames) ProtoMessage() {}

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

func (x *TableAccessRuleMatcher_TableNames) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type FunctionAccessRuleMatcher_FunctionNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FunctionAccessRuleMatcher_FunctionNames) ProtoMessage() {}

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

func (x *FunctionAccessRuleMatcher_FunctionNames) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type ProcedureAccessRuleMatcher_ProcedureNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ProcedureAccessRuleMatcher_ProcedureNames) ProtoMessage() {}

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

func (x *ProcedureAccessRuleMatcher_ProcedureNames) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type PropertyAccessRuleMatcher_PropertyNames struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Any           []string               `protobuf:"bytes,1,rep,name=any,proto3" json:"any,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PropertyAccessRuleMatcher_PropertyNames) Reset() {
	*x = PropertyAccessRuleMatcher_PropertyNames{}
	mi := &file_yandex_cloud_trino_v1_access_control_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PropertyAccessRuleMatcher_PropertyNames) ProtoMessage() {}

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

func (x *PropertyAccessRuleMatcher_PropertyNames) GetAny() []string {
	if x != nil {
		return x.Any
	}
	return nil
}

type TableAccessRule_Column struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Column name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Column access mode.
	Access TableAccessRule_Column_AccessMode `protobuf:"varint,2,opt,name=access,proto3,enum=yandex.cloud.trino.v1.TableAccessRule_Column_AccessMode" json:"access,omitempty"`
	// SQL expression mask to evaluate instead of original column values.
	// Mask should have the same type as original column.
	Mask          string `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TableAccessRule_Column) Reset() {
	*x = TableAccessRule_Column{}
	mi := &file_yandex_cloud_trino_v1_access_control_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TableAccessRule_Column) ProtoMessage() {}

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

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

func (x *TableAccessRule_Column) GetAccess() TableAccessRule_Column_AccessMode {
	if x != nil {
		return x.Access
	}
	return TableAccessRule_Column_ACCESS_MODE_UNSPECIFIED
}

func (x *TableAccessRule_Column) GetMask() string {
	if x != nil {
		return x.Mask
	}
	return ""
}

var File_yandex_cloud_trino_v1_access_control_proto protoreflect.FileDescriptor

const file_yandex_cloud_trino_v1_access_control_proto_rawDesc = "" +
	"\n" +
	"*yandex/cloud/trino/v1/access_control.proto\x12\x15yandex.cloud.trino.v1\x1a\x1dyandex/cloud/validation.proto\"\xa0\x05\n" +
	"\x13AccessControlConfig\x12D\n" +
	"\bcatalogs\x18\x01 \x03(\v2(.yandex.cloud.trino.v1.CatalogAccessRuleR\bcatalogs\x12A\n" +
	"\aschemas\x18\x02 \x03(\v2'.yandex.cloud.trino.v1.SchemaAccessRuleR\aschemas\x12>\n" +
	"\x06tables\x18\x03 \x03(\v2&.yandex.cloud.trino.v1.TableAccessRuleR\x06tables\x12G\n" +
	"\tfunctions\x18\x04 \x03(\v2).yandex.cloud.trino.v1.FunctionAccessRuleR\tfunctions\x12J\n" +
	"\n" +
	"procedures\x18\x05 \x03(\v2*.yandex.cloud.trino.v1.ProcedureAccessRuleR\n" +
	"procedures\x12@\n" +
	"\aqueries\x18\x06 \x03(\v2&.yandex.cloud.trino.v1.QueryAccessRuleR\aqueries\x12r\n" +
	"\x19system_session_properties\x18\a \x03(\v26.yandex.cloud.trino.v1.SystemSessionPropertyAccessRuleR\x17systemSessionProperties\x12u\n" +
	"\x1acatalog_session_properties\x18\b \x03(\v27.yandex.cloud.trino.v1.CatalogSessionPropertyAccessRuleR\x18catalogSessionProperties\"\xfc\x02\n" +
	"\x18CatalogAccessRuleMatcher\x12,\n" +
	"\vname_regexp\x18\x03 \x01(\tB\t\x8a\xc81\x05<=256H\x00R\n" +
	"nameRegexp\x12N\n" +
	"\x03ids\x18\x04 \x01(\v2:.yandex.cloud.trino.v1.CatalogAccessRuleMatcher.CatalogIdsH\x00R\x03ids\x12T\n" +
	"\x05names\x18\x05 \x01(\v2<.yandex.cloud.trino.v1.CatalogAccessRuleMatcher.CatalogNamesH\x00R\x05names\x1a5\n" +
	"\n" +
	"CatalogIds\x12'\n" +
	"\x03any\x18\x01 \x03(\tB\x15\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03any\x1a7\n" +
	"\fCatalogNames\x12'\n" +
	"\x03any\x18\x01 \x03(\tB\x15\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03anyB\x10\n" +
	"\bmatch_by\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02J\x04\b\x02\x10\x03\"\xfa\x01\n" +
	"\x17SchemaAccessRuleMatcher\x12,\n" +
	"\vname_regexp\x18\x02 \x01(\tB\t\x8a\xc81\x05<=256H\x00R\n" +
	"nameRegexp\x12R\n" +
	"\x05names\x18\x03 \x01(\v2:.yandex.cloud.trino.v1.SchemaAccessRuleMatcher.SchemaNamesH\x00R\x05names\x1aE\n" +
	"\vSchemaNames\x126\n" +
	"\x03any\x18\x01 \x03(\tB$\xf2\xc71\v[a-z0-9_-]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03anyB\x10\n" +
	"\bmatch_by\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02\"\xf6\x01\n" +
	"\x16TableAccessRuleMatcher\x12,\n" +
	"\vname_regexp\x18\x02 \x01(\tB\t\x8a\xc81\x05<=256H\x00R\n" +
	"nameRegexp\x12P\n" +
	"\x05names\x18\x03 \x01(\v28.yandex.cloud.trino.v1.TableAccessRuleMatcher.TableNamesH\x00R\x05names\x1aD\n" +
	"\n" +
	"TableNames\x126\n" +
	"\x03any\x18\x01 \x03(\tB$\xf2\xc71\v[a-z0-9_-]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03anyB\x10\n" +
	"\bmatch_by\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02\"\x82\x02\n" +
	"\x19FunctionAccessRuleMatcher\x12,\n" +
	"\vname_regexp\x18\x02 \x01(\tB\t\x8a\xc81\x05<=256H\x00R\n" +
	"nameRegexp\x12V\n" +
	"\x05names\x18\x03 \x01(\v2>.yandex.cloud.trino.v1.FunctionAccessRuleMatcher.FunctionNamesH\x00R\x05names\x1aG\n" +
	"\rFunctionNames\x126\n" +
	"\x03any\x18\x01 \x03(\tB$\xf2\xc71\v[a-z0-9_-]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03anyB\x10\n" +
	"\bmatch_by\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02\"\x86\x02\n" +
	"\x1aProcedureAccessRuleMatcher\x12,\n" +
	"\vname_regexp\x18\x02 \x01(\tB\t\x8a\xc81\x05<=256H\x00R\n" +
	"nameRegexp\x12X\n" +
	"\x05names\x18\x03 \x01(\v2@.yandex.cloud.trino.v1.ProcedureAccessRuleMatcher.ProcedureNamesH\x00R\x05names\x1aH\n" +
	"\x0eProcedureNames\x126\n" +
	"\x03any\x18\x01 \x03(\tB$\xf2\xc71\v[a-z0-9_-]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03anyB\x10\n" +
	"\bmatch_by\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02\"\xfe\x01\n" +
	"\x19PropertyAccessRuleMatcher\x12,\n" +
	"\vname_regexp\x18\x02 \x01(\tB\t\x8a\xc81\x05<=256H\x00R\n" +
	"nameRegexp\x12V\n" +
	"\x05names\x18\x03 \x01(\v2>.yandex.cloud.trino.v1.PropertyAccessRuleMatcher.PropertyNamesH\x00R\x05names\x1aC\n" +
	"\rPropertyNames\x122\n" +
	"\x03any\x18\x01 \x03(\tB \xf2\xc71\a[a-z_]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x03anyB\x10\n" +
	"\bmatch_by\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02\"\xb2\x03\n" +
	"\x11CatalogAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12I\n" +
	"\acatalog\x18\x04 \x01(\v2/.yandex.cloud.trino.v1.CatalogAccessRuleMatcherR\acatalog\x12Y\n" +
	"\n" +
	"permission\x18\x05 \x01(\x0e23.yandex.cloud.trino.v1.CatalogAccessRule.PermissionB\x04\xe8\xc71\x01R\n" +
	"permission\x12+\n" +
	"\vdescription\x18\x06 \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"J\n" +
	"\n" +
	"Permission\x12\x1a\n" +
	"\x16PERMISSION_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04NONE\x10\x01\x12\a\n" +
	"\x03ALL\x10\x02\x12\r\n" +
	"\tREAD_ONLY\x10\x03J\x04\b\x02\x10\x03\"\xce\x03\n" +
	"\x10SchemaAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12I\n" +
	"\acatalog\x18\x04 \x01(\v2/.yandex.cloud.trino.v1.CatalogAccessRuleMatcherR\acatalog\x12F\n" +
	"\x06schema\x18\x05 \x01(\v2..yandex.cloud.trino.v1.SchemaAccessRuleMatcherR\x06schema\x12I\n" +
	"\x05owner\x18\x06 \x01(\x0e2-.yandex.cloud.trino.v1.SchemaAccessRule.OwnerB\x04\xe8\xc71\x01R\x05owner\x12+\n" +
	"\vdescription\x18\a \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"/\n" +
	"\x05Owner\x12\x15\n" +
	"\x11OWNER_UNSPECIFIED\x10\x00\x12\x06\n" +
	"\x02NO\x10\x01\x12\a\n" +
	"\x03YES\x10\x02J\x04\b\x02\x10\x03\"\xca\a\n" +
	"\x0fTableAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12I\n" +
	"\acatalog\x18\x04 \x01(\v2/.yandex.cloud.trino.v1.CatalogAccessRuleMatcherR\acatalog\x12F\n" +
	"\x06schema\x18\x05 \x01(\v2..yandex.cloud.trino.v1.SchemaAccessRuleMatcherR\x06schema\x12C\n" +
	"\x05table\x18\x06 \x01(\v2-.yandex.cloud.trino.v1.TableAccessRuleMatcherR\x05table\x12V\n" +
	"\n" +
	"privileges\x18\a \x03(\x0e20.yandex.cloud.trino.v1.TableAccessRule.PrivilegeB\x04\x90\xc81\x01R\n" +
	"privileges\x12G\n" +
	"\acolumns\x18\b \x03(\v2-.yandex.cloud.trino.v1.TableAccessRule.ColumnR\acolumns\x12!\n" +
	"\x06filter\x18\t \x01(\tB\t\x8a\xc81\x05<=128R\x06filter\x12+\n" +
	"\vdescription\x18\v \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\x1a\xee\x01\n" +
	"\x06Column\x12/\n" +
	"\x04name\x18\x01 \x01(\tB\x1b\xe8\xc71\x01\xf2\xc71\v[a-z0-9_-]+\x8a\xc81\x04<=63R\x04name\x12V\n" +
	"\x06access\x18\x02 \x01(\x0e28.yandex.cloud.trino.v1.TableAccessRule.Column.AccessModeB\x04\xe8\xc71\x01R\x06access\x12\x1d\n" +
	"\x04mask\x18\x03 \x01(\tB\t\x8a\xc81\x05<=128R\x04mask\"<\n" +
	"\n" +
	"AccessMode\x12\x1b\n" +
	"\x17ACCESS_MODE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04NONE\x10\x01\x12\a\n" +
	"\x03ALL\x10\x02\"w\n" +
	"\tPrivilege\x12\x19\n" +
	"\x15PRIVILEGE_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06SELECT\x10\x01\x12\n" +
	"\n" +
	"\x06INSERT\x10\x02\x12\n" +
	"\n" +
	"\x06DELETE\x10\x03\x12\n" +
	"\n" +
	"\x06UPDATE\x10\x04\x12\r\n" +
	"\tOWNERSHIP\x10\x05\x12\x10\n" +
	"\fGRANT_SELECT\x10\x06J\x04\b\x02\x10\x03J\x04\b\n" +
	"\x10\v\"\xd4\x04\n" +
	"\x12FunctionAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12I\n" +
	"\acatalog\x18\x04 \x01(\v2/.yandex.cloud.trino.v1.CatalogAccessRuleMatcherR\acatalog\x12F\n" +
	"\x06schema\x18\x05 \x01(\v2..yandex.cloud.trino.v1.SchemaAccessRuleMatcherR\x06schema\x12L\n" +
	"\bfunction\x18\x06 \x01(\v20.yandex.cloud.trino.v1.FunctionAccessRuleMatcherR\bfunction\x12Y\n" +
	"\n" +
	"privileges\x18\a \x03(\x0e23.yandex.cloud.trino.v1.FunctionAccessRule.PrivilegeB\x04\x90\xc81\x01R\n" +
	"privileges\x12+\n" +
	"\vdescription\x18\b \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"U\n" +
	"\tPrivilege\x12\x19\n" +
	"\x15PRIVILEGE_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aEXECUTE\x10\x01\x12\x11\n" +
	"\rGRANT_EXECUTE\x10\x02\x12\r\n" +
	"\tOWNERSHIP\x10\x03J\x04\b\x02\x10\x03\"\xbd\x04\n" +
	"\x13ProcedureAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12I\n" +
	"\acatalog\x18\x04 \x01(\v2/.yandex.cloud.trino.v1.CatalogAccessRuleMatcherR\acatalog\x12F\n" +
	"\x06schema\x18\x05 \x01(\v2..yandex.cloud.trino.v1.SchemaAccessRuleMatcherR\x06schema\x12O\n" +
	"\tprocedure\x18\x06 \x01(\v21.yandex.cloud.trino.v1.ProcedureAccessRuleMatcherR\tprocedure\x12Z\n" +
	"\n" +
	"privileges\x18\a \x03(\x0e24.yandex.cloud.trino.v1.ProcedureAccessRule.PrivilegeB\x04\x90\xc81\x01R\n" +
	"privileges\x12+\n" +
	"\vdescription\x18\b \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"9\n" +
	"\tPrivilege\x12\x19\n" +
	"\x15PRIVILEGE_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aEXECUTE\x10\x01\"\x04\b\x02\x10\x02J\x04\b\x02\x10\x03\"\xa8\x03\n" +
	"\x0fQueryAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12G\n" +
	"\fquery_owners\x18\x04 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\vqueryOwners\x12V\n" +
	"\n" +
	"privileges\x18\x05 \x03(\x0e20.yandex.cloud.trino.v1.QueryAccessRule.PrivilegeB\x04\x90\xc81\x01R\n" +
	"privileges\x12+\n" +
	"\vdescription\x18\x06 \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"G\n" +
	"\tPrivilege\x12\x19\n" +
	"\x15PRIVILEGE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04VIEW\x10\x01\x12\v\n" +
	"\aEXECUTE\x10\x02\x12\b\n" +
	"\x04KILL\x10\x03J\x04\b\x02\x10\x03\"\xa7\x03\n" +
	"\x1fSystemSessionPropertyAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12L\n" +
	"\bproperty\x18\x04 \x01(\v20.yandex.cloud.trino.v1.PropertyAccessRuleMatcherR\bproperty\x12X\n" +
	"\x05allow\x18\x05 \x01(\x0e2<.yandex.cloud.trino.v1.SystemSessionPropertyAccessRule.AllowB\x04\xe8\xc71\x01R\x05allow\x12+\n" +
	"\vdescription\x18\x06 \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"/\n" +
	"\x05Allow\x12\x15\n" +
	"\x11ALLOW_UNSPECIFIED\x10\x00\x12\x06\n" +
	"\x02NO\x10\x01\x12\a\n" +
	"\x03YES\x10\x02J\x04\b\x02\x10\x03\"\xf4\x03\n" +
	" CatalogSessionPropertyAccessRule\x12:\n" +
	"\x05users\x18\x01 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x05users\x12<\n" +
	"\x06groups\x18\x03 \x03(\tB$\xf2\xc71\v[-_0-9a-z]+\x82\xc81\x05<=128\x8a\xc81\x04<=63\x90\xc81\x01R\x06groups\x12I\n" +
	"\acatalog\x18\x04 \x01(\v2/.yandex.cloud.trino.v1.CatalogAccessRuleMatcherR\acatalog\x12L\n" +
	"\bproperty\x18\x05 \x01(\v20.yandex.cloud.trino.v1.PropertyAccessRuleMatcherR\bproperty\x12Y\n" +
	"\x05allow\x18\x06 \x01(\x0e2=.yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule.AllowB\x04\xe8\xc71\x01R\x05allow\x12+\n" +
	"\vdescription\x18\a \x01(\tB\t\x8a\xc81\x05<=128R\vdescription\"/\n" +
	"\x05Allow\x12\x15\n" +
	"\x11ALLOW_UNSPECIFIED\x10\x00\x12\x06\n" +
	"\x02NO\x10\x01\x12\a\n" +
	"\x03YES\x10\x02J\x04\b\x02\x10\x03B\\\n" +
	"\x19yandex.cloud.api.trino.v1Z?github.com/yandex-cloud/go-genproto/yandex/cloud/trino/v1;trinob\x06proto3"

var (
	file_yandex_cloud_trino_v1_access_control_proto_rawDescOnce sync.Once
	file_yandex_cloud_trino_v1_access_control_proto_rawDescData []byte
)

func file_yandex_cloud_trino_v1_access_control_proto_rawDescGZIP() []byte {
	file_yandex_cloud_trino_v1_access_control_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_trino_v1_access_control_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_trino_v1_access_control_proto_rawDesc), len(file_yandex_cloud_trino_v1_access_control_proto_rawDesc)))
	})
	return file_yandex_cloud_trino_v1_access_control_proto_rawDescData
}

var file_yandex_cloud_trino_v1_access_control_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
var file_yandex_cloud_trino_v1_access_control_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_yandex_cloud_trino_v1_access_control_proto_goTypes = []any{
	(CatalogAccessRule_Permission)(0),                 // 0: yandex.cloud.trino.v1.CatalogAccessRule.Permission
	(SchemaAccessRule_Owner)(0),                       // 1: yandex.cloud.trino.v1.SchemaAccessRule.Owner
	(TableAccessRule_Privilege)(0),                    // 2: yandex.cloud.trino.v1.TableAccessRule.Privilege
	(TableAccessRule_Column_AccessMode)(0),            // 3: yandex.cloud.trino.v1.TableAccessRule.Column.AccessMode
	(FunctionAccessRule_Privilege)(0),                 // 4: yandex.cloud.trino.v1.FunctionAccessRule.Privilege
	(ProcedureAccessRule_Privilege)(0),                // 5: yandex.cloud.trino.v1.ProcedureAccessRule.Privilege
	(QueryAccessRule_Privilege)(0),                    // 6: yandex.cloud.trino.v1.QueryAccessRule.Privilege
	(SystemSessionPropertyAccessRule_Allow)(0),        // 7: yandex.cloud.trino.v1.SystemSessionPropertyAccessRule.Allow
	(CatalogSessionPropertyAccessRule_Allow)(0),       // 8: yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule.Allow
	(*AccessControlConfig)(nil),                       // 9: yandex.cloud.trino.v1.AccessControlConfig
	(*CatalogAccessRuleMatcher)(nil),                  // 10: yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	(*SchemaAccessRuleMatcher)(nil),                   // 11: yandex.cloud.trino.v1.SchemaAccessRuleMatcher
	(*TableAccessRuleMatcher)(nil),                    // 12: yandex.cloud.trino.v1.TableAccessRuleMatcher
	(*FunctionAccessRuleMatcher)(nil),                 // 13: yandex.cloud.trino.v1.FunctionAccessRuleMatcher
	(*ProcedureAccessRuleMatcher)(nil),                // 14: yandex.cloud.trino.v1.ProcedureAccessRuleMatcher
	(*PropertyAccessRuleMatcher)(nil),                 // 15: yandex.cloud.trino.v1.PropertyAccessRuleMatcher
	(*CatalogAccessRule)(nil),                         // 16: yandex.cloud.trino.v1.CatalogAccessRule
	(*SchemaAccessRule)(nil),                          // 17: yandex.cloud.trino.v1.SchemaAccessRule
	(*TableAccessRule)(nil),                           // 18: yandex.cloud.trino.v1.TableAccessRule
	(*FunctionAccessRule)(nil),                        // 19: yandex.cloud.trino.v1.FunctionAccessRule
	(*ProcedureAccessRule)(nil),                       // 20: yandex.cloud.trino.v1.ProcedureAccessRule
	(*QueryAccessRule)(nil),                           // 21: yandex.cloud.trino.v1.QueryAccessRule
	(*SystemSessionPropertyAccessRule)(nil),           // 22: yandex.cloud.trino.v1.SystemSessionPropertyAccessRule
	(*CatalogSessionPropertyAccessRule)(nil),          // 23: yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule
	(*CatalogAccessRuleMatcher_CatalogIds)(nil),       // 24: yandex.cloud.trino.v1.CatalogAccessRuleMatcher.CatalogIds
	(*CatalogAccessRuleMatcher_CatalogNames)(nil),     // 25: yandex.cloud.trino.v1.CatalogAccessRuleMatcher.CatalogNames
	(*SchemaAccessRuleMatcher_SchemaNames)(nil),       // 26: yandex.cloud.trino.v1.SchemaAccessRuleMatcher.SchemaNames
	(*TableAccessRuleMatcher_TableNames)(nil),         // 27: yandex.cloud.trino.v1.TableAccessRuleMatcher.TableNames
	(*FunctionAccessRuleMatcher_FunctionNames)(nil),   // 28: yandex.cloud.trino.v1.FunctionAccessRuleMatcher.FunctionNames
	(*ProcedureAccessRuleMatcher_ProcedureNames)(nil), // 29: yandex.cloud.trino.v1.ProcedureAccessRuleMatcher.ProcedureNames
	(*PropertyAccessRuleMatcher_PropertyNames)(nil),   // 30: yandex.cloud.trino.v1.PropertyAccessRuleMatcher.PropertyNames
	(*TableAccessRule_Column)(nil),                    // 31: yandex.cloud.trino.v1.TableAccessRule.Column
}
var file_yandex_cloud_trino_v1_access_control_proto_depIdxs = []int32{
	16, // 0: yandex.cloud.trino.v1.AccessControlConfig.catalogs:type_name -> yandex.cloud.trino.v1.CatalogAccessRule
	17, // 1: yandex.cloud.trino.v1.AccessControlConfig.schemas:type_name -> yandex.cloud.trino.v1.SchemaAccessRule
	18, // 2: yandex.cloud.trino.v1.AccessControlConfig.tables:type_name -> yandex.cloud.trino.v1.TableAccessRule
	19, // 3: yandex.cloud.trino.v1.AccessControlConfig.functions:type_name -> yandex.cloud.trino.v1.FunctionAccessRule
	20, // 4: yandex.cloud.trino.v1.AccessControlConfig.procedures:type_name -> yandex.cloud.trino.v1.ProcedureAccessRule
	21, // 5: yandex.cloud.trino.v1.AccessControlConfig.queries:type_name -> yandex.cloud.trino.v1.QueryAccessRule
	22, // 6: yandex.cloud.trino.v1.AccessControlConfig.system_session_properties:type_name -> yandex.cloud.trino.v1.SystemSessionPropertyAccessRule
	23, // 7: yandex.cloud.trino.v1.AccessControlConfig.catalog_session_properties:type_name -> yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule
	24, // 8: yandex.cloud.trino.v1.CatalogAccessRuleMatcher.ids:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher.CatalogIds
	25, // 9: yandex.cloud.trino.v1.CatalogAccessRuleMatcher.names:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher.CatalogNames
	26, // 10: yandex.cloud.trino.v1.SchemaAccessRuleMatcher.names:type_name -> yandex.cloud.trino.v1.SchemaAccessRuleMatcher.SchemaNames
	27, // 11: yandex.cloud.trino.v1.TableAccessRuleMatcher.names:type_name -> yandex.cloud.trino.v1.TableAccessRuleMatcher.TableNames
	28, // 12: yandex.cloud.trino.v1.FunctionAccessRuleMatcher.names:type_name -> yandex.cloud.trino.v1.FunctionAccessRuleMatcher.FunctionNames
	29, // 13: yandex.cloud.trino.v1.ProcedureAccessRuleMatcher.names:type_name -> yandex.cloud.trino.v1.ProcedureAccessRuleMatcher.ProcedureNames
	30, // 14: yandex.cloud.trino.v1.PropertyAccessRuleMatcher.names:type_name -> yandex.cloud.trino.v1.PropertyAccessRuleMatcher.PropertyNames
	10, // 15: yandex.cloud.trino.v1.CatalogAccessRule.catalog:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	0,  // 16: yandex.cloud.trino.v1.CatalogAccessRule.permission:type_name -> yandex.cloud.trino.v1.CatalogAccessRule.Permission
	10, // 17: yandex.cloud.trino.v1.SchemaAccessRule.catalog:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	11, // 18: yandex.cloud.trino.v1.SchemaAccessRule.schema:type_name -> yandex.cloud.trino.v1.SchemaAccessRuleMatcher
	1,  // 19: yandex.cloud.trino.v1.SchemaAccessRule.owner:type_name -> yandex.cloud.trino.v1.SchemaAccessRule.Owner
	10, // 20: yandex.cloud.trino.v1.TableAccessRule.catalog:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	11, // 21: yandex.cloud.trino.v1.TableAccessRule.schema:type_name -> yandex.cloud.trino.v1.SchemaAccessRuleMatcher
	12, // 22: yandex.cloud.trino.v1.TableAccessRule.table:type_name -> yandex.cloud.trino.v1.TableAccessRuleMatcher
	2,  // 23: yandex.cloud.trino.v1.TableAccessRule.privileges:type_name -> yandex.cloud.trino.v1.TableAccessRule.Privilege
	31, // 24: yandex.cloud.trino.v1.TableAccessRule.columns:type_name -> yandex.cloud.trino.v1.TableAccessRule.Column
	10, // 25: yandex.cloud.trino.v1.FunctionAccessRule.catalog:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	11, // 26: yandex.cloud.trino.v1.FunctionAccessRule.schema:type_name -> yandex.cloud.trino.v1.SchemaAccessRuleMatcher
	13, // 27: yandex.cloud.trino.v1.FunctionAccessRule.function:type_name -> yandex.cloud.trino.v1.FunctionAccessRuleMatcher
	4,  // 28: yandex.cloud.trino.v1.FunctionAccessRule.privileges:type_name -> yandex.cloud.trino.v1.FunctionAccessRule.Privilege
	10, // 29: yandex.cloud.trino.v1.ProcedureAccessRule.catalog:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	11, // 30: yandex.cloud.trino.v1.ProcedureAccessRule.schema:type_name -> yandex.cloud.trino.v1.SchemaAccessRuleMatcher
	14, // 31: yandex.cloud.trino.v1.ProcedureAccessRule.procedure:type_name -> yandex.cloud.trino.v1.ProcedureAccessRuleMatcher
	5,  // 32: yandex.cloud.trino.v1.ProcedureAccessRule.privileges:type_name -> yandex.cloud.trino.v1.ProcedureAccessRule.Privilege
	6,  // 33: yandex.cloud.trino.v1.QueryAccessRule.privileges:type_name -> yandex.cloud.trino.v1.QueryAccessRule.Privilege
	15, // 34: yandex.cloud.trino.v1.SystemSessionPropertyAccessRule.property:type_name -> yandex.cloud.trino.v1.PropertyAccessRuleMatcher
	7,  // 35: yandex.cloud.trino.v1.SystemSessionPropertyAccessRule.allow:type_name -> yandex.cloud.trino.v1.SystemSessionPropertyAccessRule.Allow
	10, // 36: yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule.catalog:type_name -> yandex.cloud.trino.v1.CatalogAccessRuleMatcher
	15, // 37: yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule.property:type_name -> yandex.cloud.trino.v1.PropertyAccessRuleMatcher
	8,  // 38: yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule.allow:type_name -> yandex.cloud.trino.v1.CatalogSessionPropertyAccessRule.Allow
	3,  // 39: yandex.cloud.trino.v1.TableAccessRule.Column.access:type_name -> yandex.cloud.trino.v1.TableAccessRule.Column.AccessMode
	40, // [40:40] is the sub-list for method output_type
	40, // [40:40] is the sub-list for method input_type
	40, // [40:40] is the sub-list for extension type_name
	40, // [40:40] is the sub-list for extension extendee
	0,  // [0:40] is the sub-list for field type_name
}

func init() { file_yandex_cloud_trino_v1_access_control_proto_init() }
func file_yandex_cloud_trino_v1_access_control_proto_init() {
	if File_yandex_cloud_trino_v1_access_control_proto != nil {
		return
	}
	file_yandex_cloud_trino_v1_access_control_proto_msgTypes[1].OneofWrappers = []any{
		(*CatalogAccessRuleMatcher_NameRegexp)(nil),
		(*CatalogAccessRuleMatcher_Ids)(nil),
		(*CatalogAccessRuleMatcher_Names)(nil),
	}
	file_yandex_cloud_trino_v1_access_control_proto_msgTypes[2].OneofWrappers = []any{
		(*SchemaAccessRuleMatcher_NameRegexp)(nil),
		(*SchemaAccessRuleMatcher_Names)(nil),
	}
	file_yandex_cloud_trino_v1_access_control_proto_msgTypes[3].OneofWrappers = []any{
		(*TableAccessRuleMatcher_NameRegexp)(nil),
		(*TableAccessRuleMatcher_Names)(nil),
	}
	file_yandex_cloud_trino_v1_access_control_proto_msgTypes[4].OneofWrappers = []any{
		(*FunctionAccessRuleMatcher_NameRegexp)(nil),
		(*FunctionAccessRuleMatcher_Names)(nil),
	}
	file_yandex_cloud_trino_v1_access_control_proto_msgTypes[5].OneofWrappers = []any{
		(*ProcedureAccessRuleMatcher_NameRegexp)(nil),
		(*ProcedureAccessRuleMatcher_Names)(nil),
	}
	file_yandex_cloud_trino_v1_access_control_proto_msgTypes[6].OneofWrappers = []any{
		(*PropertyAccessRuleMatcher_NameRegexp)(nil),
		(*PropertyAccessRuleMatcher_Names)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_trino_v1_access_control_proto_rawDesc), len(file_yandex_cloud_trino_v1_access_control_proto_rawDesc)),
			NumEnums:      9,
			NumMessages:   23,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_trino_v1_access_control_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_trino_v1_access_control_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_trino_v1_access_control_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_trino_v1_access_control_proto_msgTypes,
	}.Build()
	File_yandex_cloud_trino_v1_access_control_proto = out.File
	file_yandex_cloud_trino_v1_access_control_proto_goTypes = nil
	file_yandex_cloud_trino_v1_access_control_proto_depIdxs = nil
}
