// Copyright 2021-2025 Zenauth Ltd.
// SPDX-License-Identifier: Apache-2.0

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        (unknown)
// source: cerbos/policy/v1/policy.proto

package policyv1

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	v1 "github.com/cerbos/cerbos/api/genpb/cerbos/effect/v1"
	v11 "github.com/cerbos/cerbos/api/genpb/cerbos/engine/v1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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 Kind int32

const (
	Kind_KIND_UNSPECIFIED      Kind = 0
	Kind_KIND_DERIVED_ROLES    Kind = 1
	Kind_KIND_EXPORT_VARIABLES Kind = 2
	Kind_KIND_PRINCIPAL        Kind = 3
	Kind_KIND_RESOURCE         Kind = 4
	Kind_KIND_ROLE_POLICY      Kind = 5
	Kind_KIND_EXPORT_CONSTANTS Kind = 6
)

// Enum value maps for Kind.
var (
	Kind_name = map[int32]string{
		0: "KIND_UNSPECIFIED",
		1: "KIND_DERIVED_ROLES",
		2: "KIND_EXPORT_VARIABLES",
		3: "KIND_PRINCIPAL",
		4: "KIND_RESOURCE",
		5: "KIND_ROLE_POLICY",
		6: "KIND_EXPORT_CONSTANTS",
	}
	Kind_value = map[string]int32{
		"KIND_UNSPECIFIED":      0,
		"KIND_DERIVED_ROLES":    1,
		"KIND_EXPORT_VARIABLES": 2,
		"KIND_PRINCIPAL":        3,
		"KIND_RESOURCE":         4,
		"KIND_ROLE_POLICY":      5,
		"KIND_EXPORT_CONSTANTS": 6,
	}
)

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

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

func (Kind) Descriptor() protoreflect.EnumDescriptor {
	return file_cerbos_policy_v1_policy_proto_enumTypes[0].Descriptor()
}

func (Kind) Type() protoreflect.EnumType {
	return &file_cerbos_policy_v1_policy_proto_enumTypes[0]
}

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

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

type ScopePermissions int32

const (
	ScopePermissions_SCOPE_PERMISSIONS_UNSPECIFIED                         ScopePermissions = 0
	ScopePermissions_SCOPE_PERMISSIONS_OVERRIDE_PARENT                     ScopePermissions = 1
	ScopePermissions_SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS ScopePermissions = 2
)

// Enum value maps for ScopePermissions.
var (
	ScopePermissions_name = map[int32]string{
		0: "SCOPE_PERMISSIONS_UNSPECIFIED",
		1: "SCOPE_PERMISSIONS_OVERRIDE_PARENT",
		2: "SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS",
	}
	ScopePermissions_value = map[string]int32{
		"SCOPE_PERMISSIONS_UNSPECIFIED":                         0,
		"SCOPE_PERMISSIONS_OVERRIDE_PARENT":                     1,
		"SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS": 2,
	}
)

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

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

func (ScopePermissions) Descriptor() protoreflect.EnumDescriptor {
	return file_cerbos_policy_v1_policy_proto_enumTypes[1].Descriptor()
}

func (ScopePermissions) Type() protoreflect.EnumType {
	return &file_cerbos_policy_v1_policy_proto_enumTypes[1]
}

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

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

type TestResults_Result int32

const (
	TestResults_RESULT_UNSPECIFIED TestResults_Result = 0
	TestResults_RESULT_SKIPPED     TestResults_Result = 1
	TestResults_RESULT_PASSED      TestResults_Result = 2
	TestResults_RESULT_FAILED      TestResults_Result = 3
	TestResults_RESULT_ERRORED     TestResults_Result = 4
)

// Enum value maps for TestResults_Result.
var (
	TestResults_Result_name = map[int32]string{
		0: "RESULT_UNSPECIFIED",
		1: "RESULT_SKIPPED",
		2: "RESULT_PASSED",
		3: "RESULT_FAILED",
		4: "RESULT_ERRORED",
	}
	TestResults_Result_value = map[string]int32{
		"RESULT_UNSPECIFIED": 0,
		"RESULT_SKIPPED":     1,
		"RESULT_PASSED":      2,
		"RESULT_FAILED":      3,
		"RESULT_ERRORED":     4,
	}
)

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

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

func (TestResults_Result) Descriptor() protoreflect.EnumDescriptor {
	return file_cerbos_policy_v1_policy_proto_enumTypes[2].Descriptor()
}

func (TestResults_Result) Type() protoreflect.EnumType {
	return &file_cerbos_policy_v1_policy_proto_enumTypes[2]
}

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

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

type Policy struct {
	state       protoimpl.MessageState `protogen:"open.v1"`
	ApiVersion  string                 `protobuf:"bytes,1,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
	Disabled    bool                   `protobuf:"varint,2,opt,name=disabled,proto3" json:"disabled,omitempty"`
	Description string                 `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Metadata    *Metadata              `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// Types that are valid to be assigned to PolicyType:
	//
	//	*Policy_ResourcePolicy
	//	*Policy_PrincipalPolicy
	//	*Policy_DerivedRoles
	//	*Policy_ExportVariables
	//	*Policy_RolePolicy
	//	*Policy_ExportConstants
	PolicyType isPolicy_PolicyType `protobuf_oneof:"policy_type"`
	// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
	Variables     map[string]string `protobuf:"bytes,8,rep,name=variables,proto3" json:"variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	JsonSchema    string            `protobuf:"bytes,9,opt,name=json_schema,json=$schema,proto3" json:"json_schema,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Policy) ProtoMessage() {}

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

func (x *Policy) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

func (x *Policy) GetDisabled() bool {
	if x != nil {
		return x.Disabled
	}
	return false
}

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

func (x *Policy) GetMetadata() *Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Policy) GetPolicyType() isPolicy_PolicyType {
	if x != nil {
		return x.PolicyType
	}
	return nil
}

func (x *Policy) GetResourcePolicy() *ResourcePolicy {
	if x != nil {
		if x, ok := x.PolicyType.(*Policy_ResourcePolicy); ok {
			return x.ResourcePolicy
		}
	}
	return nil
}

func (x *Policy) GetPrincipalPolicy() *PrincipalPolicy {
	if x != nil {
		if x, ok := x.PolicyType.(*Policy_PrincipalPolicy); ok {
			return x.PrincipalPolicy
		}
	}
	return nil
}

func (x *Policy) GetDerivedRoles() *DerivedRoles {
	if x != nil {
		if x, ok := x.PolicyType.(*Policy_DerivedRoles); ok {
			return x.DerivedRoles
		}
	}
	return nil
}

func (x *Policy) GetExportVariables() *ExportVariables {
	if x != nil {
		if x, ok := x.PolicyType.(*Policy_ExportVariables); ok {
			return x.ExportVariables
		}
	}
	return nil
}

func (x *Policy) GetRolePolicy() *RolePolicy {
	if x != nil {
		if x, ok := x.PolicyType.(*Policy_RolePolicy); ok {
			return x.RolePolicy
		}
	}
	return nil
}

func (x *Policy) GetExportConstants() *ExportConstants {
	if x != nil {
		if x, ok := x.PolicyType.(*Policy_ExportConstants); ok {
			return x.ExportConstants
		}
	}
	return nil
}

// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
func (x *Policy) GetVariables() map[string]string {
	if x != nil {
		return x.Variables
	}
	return nil
}

func (x *Policy) GetJsonSchema() string {
	if x != nil {
		return x.JsonSchema
	}
	return ""
}

type isPolicy_PolicyType interface {
	isPolicy_PolicyType()
}

type Policy_ResourcePolicy struct {
	ResourcePolicy *ResourcePolicy `protobuf:"bytes,5,opt,name=resource_policy,json=resourcePolicy,proto3,oneof"`
}

type Policy_PrincipalPolicy struct {
	PrincipalPolicy *PrincipalPolicy `protobuf:"bytes,6,opt,name=principal_policy,json=principalPolicy,proto3,oneof"`
}

type Policy_DerivedRoles struct {
	DerivedRoles *DerivedRoles `protobuf:"bytes,7,opt,name=derived_roles,json=derivedRoles,proto3,oneof"`
}

type Policy_ExportVariables struct {
	ExportVariables *ExportVariables `protobuf:"bytes,10,opt,name=export_variables,json=exportVariables,proto3,oneof"`
}

type Policy_RolePolicy struct {
	RolePolicy *RolePolicy `protobuf:"bytes,11,opt,name=role_policy,json=rolePolicy,proto3,oneof"`
}

type Policy_ExportConstants struct {
	ExportConstants *ExportConstants `protobuf:"bytes,12,opt,name=export_constants,json=exportConstants,proto3,oneof"`
}

func (*Policy_ResourcePolicy) isPolicy_PolicyType() {}

func (*Policy_PrincipalPolicy) isPolicy_PolicyType() {}

func (*Policy_DerivedRoles) isPolicy_PolicyType() {}

func (*Policy_ExportVariables) isPolicy_PolicyType() {}

func (*Policy_RolePolicy) isPolicy_PolicyType() {}

func (*Policy_ExportConstants) isPolicy_PolicyType() {}

type SourceAttributes struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Attributes    map[string]*structpb.Value `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SourceAttributes) ProtoMessage() {}

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

func (x *SourceAttributes) GetAttributes() map[string]*structpb.Value {
	if x != nil {
		return x.Attributes
	}
	return nil
}

type Metadata struct {
	state       protoimpl.MessageState  `protogen:"open.v1"`
	SourceFile  string                  `protobuf:"bytes,1,opt,name=source_file,json=sourceFile,proto3" json:"source_file,omitempty"`
	Annotations map[string]string       `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Hash        *wrapperspb.UInt64Value `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
	// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
	StoreIdentifer   string            `protobuf:"bytes,4,opt,name=store_identifer,json=storeIdentifer,proto3" json:"store_identifer,omitempty"`
	StoreIdentifier  string            `protobuf:"bytes,5,opt,name=store_identifier,json=storeIdentifier,proto3" json:"store_identifier,omitempty"`
	SourceAttributes *SourceAttributes `protobuf:"bytes,6,opt,name=source_attributes,json=sourceAttributes,proto3" json:"source_attributes,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*Metadata) ProtoMessage() {}

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

func (x *Metadata) GetSourceFile() string {
	if x != nil {
		return x.SourceFile
	}
	return ""
}

func (x *Metadata) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

func (x *Metadata) GetHash() *wrapperspb.UInt64Value {
	if x != nil {
		return x.Hash
	}
	return nil
}

// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
func (x *Metadata) GetStoreIdentifer() string {
	if x != nil {
		return x.StoreIdentifer
	}
	return ""
}

func (x *Metadata) GetStoreIdentifier() string {
	if x != nil {
		return x.StoreIdentifier
	}
	return ""
}

func (x *Metadata) GetSourceAttributes() *SourceAttributes {
	if x != nil {
		return x.SourceAttributes
	}
	return nil
}

type ResourcePolicy struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Resource           string                 `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	Version            string                 `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	ImportDerivedRoles []string               `protobuf:"bytes,3,rep,name=import_derived_roles,json=importDerivedRoles,proto3" json:"import_derived_roles,omitempty"`
	Rules              []*ResourceRule        `protobuf:"bytes,4,rep,name=rules,proto3" json:"rules,omitempty"`
	Scope              string                 `protobuf:"bytes,5,opt,name=scope,proto3" json:"scope,omitempty"`
	Schemas            *Schemas               `protobuf:"bytes,6,opt,name=schemas,proto3" json:"schemas,omitempty"`
	Variables          *Variables             `protobuf:"bytes,7,opt,name=variables,proto3" json:"variables,omitempty"`
	ScopePermissions   ScopePermissions       `protobuf:"varint,8,opt,name=scope_permissions,json=scopePermissions,proto3,enum=cerbos.policy.v1.ScopePermissions" json:"scope_permissions,omitempty"`
	Constants          *Constants             `protobuf:"bytes,9,opt,name=constants,proto3" json:"constants,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ResourcePolicy) ProtoMessage() {}

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

func (x *ResourcePolicy) GetResource() string {
	if x != nil {
		return x.Resource
	}
	return ""
}

func (x *ResourcePolicy) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *ResourcePolicy) GetImportDerivedRoles() []string {
	if x != nil {
		return x.ImportDerivedRoles
	}
	return nil
}

func (x *ResourcePolicy) GetRules() []*ResourceRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

func (x *ResourcePolicy) GetScope() string {
	if x != nil {
		return x.Scope
	}
	return ""
}

func (x *ResourcePolicy) GetSchemas() *Schemas {
	if x != nil {
		return x.Schemas
	}
	return nil
}

func (x *ResourcePolicy) GetVariables() *Variables {
	if x != nil {
		return x.Variables
	}
	return nil
}

func (x *ResourcePolicy) GetScopePermissions() ScopePermissions {
	if x != nil {
		return x.ScopePermissions
	}
	return ScopePermissions_SCOPE_PERMISSIONS_UNSPECIFIED
}

func (x *ResourcePolicy) GetConstants() *Constants {
	if x != nil {
		return x.Constants
	}
	return nil
}

type ResourceRule struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Actions       []string               `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
	DerivedRoles  []string               `protobuf:"bytes,2,rep,name=derived_roles,json=derivedRoles,proto3" json:"derived_roles,omitempty"`
	Roles         []string               `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"`
	Condition     *Condition             `protobuf:"bytes,4,opt,name=condition,proto3" json:"condition,omitempty"`
	Effect        v1.Effect              `protobuf:"varint,5,opt,name=effect,proto3,enum=cerbos.effect.v1.Effect" json:"effect,omitempty"`
	Name          string                 `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
	Output        *Output                `protobuf:"bytes,7,opt,name=output,proto3" json:"output,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResourceRule) ProtoMessage() {}

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

func (x *ResourceRule) GetActions() []string {
	if x != nil {
		return x.Actions
	}
	return nil
}

func (x *ResourceRule) GetDerivedRoles() []string {
	if x != nil {
		return x.DerivedRoles
	}
	return nil
}

func (x *ResourceRule) GetRoles() []string {
	if x != nil {
		return x.Roles
	}
	return nil
}

func (x *ResourceRule) GetCondition() *Condition {
	if x != nil {
		return x.Condition
	}
	return nil
}

func (x *ResourceRule) GetEffect() v1.Effect {
	if x != nil {
		return x.Effect
	}
	return v1.Effect(0)
}

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

func (x *ResourceRule) GetOutput() *Output {
	if x != nil {
		return x.Output
	}
	return nil
}

type RolePolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to PolicyType:
	//
	//	*RolePolicy_Role
	PolicyType  isRolePolicy_PolicyType `protobuf_oneof:"policy_type"`
	ParentRoles []string                `protobuf:"bytes,5,rep,name=parent_roles,json=parentRoles,proto3" json:"parent_roles,omitempty"`
	Scope       string                  `protobuf:"bytes,2,opt,name=scope,proto3" json:"scope,omitempty"`
	Rules       []*RoleRule             `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
	// Deprecated: no-op.
	//
	// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
	ScopePermissions ScopePermissions `protobuf:"varint,4,opt,name=scope_permissions,json=scopePermissions,proto3,enum=cerbos.policy.v1.ScopePermissions" json:"scope_permissions,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*RolePolicy) ProtoMessage() {}

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

func (x *RolePolicy) GetPolicyType() isRolePolicy_PolicyType {
	if x != nil {
		return x.PolicyType
	}
	return nil
}

func (x *RolePolicy) GetRole() string {
	if x != nil {
		if x, ok := x.PolicyType.(*RolePolicy_Role); ok {
			return x.Role
		}
	}
	return ""
}

func (x *RolePolicy) GetParentRoles() []string {
	if x != nil {
		return x.ParentRoles
	}
	return nil
}

func (x *RolePolicy) GetScope() string {
	if x != nil {
		return x.Scope
	}
	return ""
}

func (x *RolePolicy) GetRules() []*RoleRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
func (x *RolePolicy) GetScopePermissions() ScopePermissions {
	if x != nil {
		return x.ScopePermissions
	}
	return ScopePermissions_SCOPE_PERMISSIONS_UNSPECIFIED
}

type isRolePolicy_PolicyType interface {
	isRolePolicy_PolicyType()
}

type RolePolicy_Role struct {
	Role string `protobuf:"bytes,1,opt,name=role,proto3,oneof"`
}

func (*RolePolicy_Role) isRolePolicy_PolicyType() {}

type RoleRule struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Resource      string                 `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	AllowActions  []string               `protobuf:"bytes,2,rep,name=allow_actions,json=allowActions,proto3" json:"allow_actions,omitempty"`
	Condition     *Condition             `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RoleRule) ProtoMessage() {}

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

func (x *RoleRule) GetResource() string {
	if x != nil {
		return x.Resource
	}
	return ""
}

func (x *RoleRule) GetAllowActions() []string {
	if x != nil {
		return x.AllowActions
	}
	return nil
}

func (x *RoleRule) GetCondition() *Condition {
	if x != nil {
		return x.Condition
	}
	return nil
}

type PrincipalPolicy struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Principal        string                 `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"`
	Version          string                 `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	Rules            []*PrincipalRule       `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
	Scope            string                 `protobuf:"bytes,4,opt,name=scope,proto3" json:"scope,omitempty"`
	Variables        *Variables             `protobuf:"bytes,5,opt,name=variables,proto3" json:"variables,omitempty"`
	ScopePermissions ScopePermissions       `protobuf:"varint,6,opt,name=scope_permissions,json=scopePermissions,proto3,enum=cerbos.policy.v1.ScopePermissions" json:"scope_permissions,omitempty"`
	Constants        *Constants             `protobuf:"bytes,7,opt,name=constants,proto3" json:"constants,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*PrincipalPolicy) ProtoMessage() {}

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

func (x *PrincipalPolicy) GetPrincipal() string {
	if x != nil {
		return x.Principal
	}
	return ""
}

func (x *PrincipalPolicy) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *PrincipalPolicy) GetRules() []*PrincipalRule {
	if x != nil {
		return x.Rules
	}
	return nil
}

func (x *PrincipalPolicy) GetScope() string {
	if x != nil {
		return x.Scope
	}
	return ""
}

func (x *PrincipalPolicy) GetVariables() *Variables {
	if x != nil {
		return x.Variables
	}
	return nil
}

func (x *PrincipalPolicy) GetScopePermissions() ScopePermissions {
	if x != nil {
		return x.ScopePermissions
	}
	return ScopePermissions_SCOPE_PERMISSIONS_UNSPECIFIED
}

func (x *PrincipalPolicy) GetConstants() *Constants {
	if x != nil {
		return x.Constants
	}
	return nil
}

type PrincipalRule struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Resource      string                  `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	Actions       []*PrincipalRule_Action `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PrincipalRule) ProtoMessage() {}

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

func (x *PrincipalRule) GetResource() string {
	if x != nil {
		return x.Resource
	}
	return ""
}

func (x *PrincipalRule) GetActions() []*PrincipalRule_Action {
	if x != nil {
		return x.Actions
	}
	return nil
}

type DerivedRoles struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Definitions   []*RoleDef             `protobuf:"bytes,2,rep,name=definitions,proto3" json:"definitions,omitempty"`
	Variables     *Variables             `protobuf:"bytes,3,opt,name=variables,proto3" json:"variables,omitempty"`
	Constants     *Constants             `protobuf:"bytes,4,opt,name=constants,proto3" json:"constants,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DerivedRoles) ProtoMessage() {}

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

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

func (x *DerivedRoles) GetDefinitions() []*RoleDef {
	if x != nil {
		return x.Definitions
	}
	return nil
}

func (x *DerivedRoles) GetVariables() *Variables {
	if x != nil {
		return x.Variables
	}
	return nil
}

func (x *DerivedRoles) GetConstants() *Constants {
	if x != nil {
		return x.Constants
	}
	return nil
}

type RoleDef struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ParentRoles   []string               `protobuf:"bytes,2,rep,name=parent_roles,json=parentRoles,proto3" json:"parent_roles,omitempty"`
	Condition     *Condition             `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RoleDef) ProtoMessage() {}

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

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

func (x *RoleDef) GetParentRoles() []string {
	if x != nil {
		return x.ParentRoles
	}
	return nil
}

func (x *RoleDef) GetCondition() *Condition {
	if x != nil {
		return x.Condition
	}
	return nil
}

type ExportConstants struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Name          string                     `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Definitions   map[string]*structpb.Value `protobuf:"bytes,2,rep,name=definitions,proto3" json:"definitions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ExportConstants) ProtoMessage() {}

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

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

func (x *ExportConstants) GetDefinitions() map[string]*structpb.Value {
	if x != nil {
		return x.Definitions
	}
	return nil
}

type Constants struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Import        []string                   `protobuf:"bytes,1,rep,name=import,proto3" json:"import,omitempty"`
	Local         map[string]*structpb.Value `protobuf:"bytes,2,rep,name=local,proto3" json:"local,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Constants) ProtoMessage() {}

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

func (x *Constants) GetImport() []string {
	if x != nil {
		return x.Import
	}
	return nil
}

func (x *Constants) GetLocal() map[string]*structpb.Value {
	if x != nil {
		return x.Local
	}
	return nil
}

type ExportVariables struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Definitions   map[string]string      `protobuf:"bytes,2,rep,name=definitions,proto3" json:"definitions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ExportVariables) ProtoMessage() {}

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

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

func (x *ExportVariables) GetDefinitions() map[string]string {
	if x != nil {
		return x.Definitions
	}
	return nil
}

type Variables struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Import        []string               `protobuf:"bytes,1,rep,name=import,proto3" json:"import,omitempty"`
	Local         map[string]string      `protobuf:"bytes,2,rep,name=local,proto3" json:"local,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Variables) ProtoMessage() {}

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

func (x *Variables) GetImport() []string {
	if x != nil {
		return x.Import
	}
	return nil
}

func (x *Variables) GetLocal() map[string]string {
	if x != nil {
		return x.Local
	}
	return nil
}

type Condition struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Condition:
	//
	//	*Condition_Match
	//	*Condition_Script
	Condition     isCondition_Condition `protobuf_oneof:"condition"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Condition) ProtoMessage() {}

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

func (x *Condition) GetCondition() isCondition_Condition {
	if x != nil {
		return x.Condition
	}
	return nil
}

func (x *Condition) GetMatch() *Match {
	if x != nil {
		if x, ok := x.Condition.(*Condition_Match); ok {
			return x.Match
		}
	}
	return nil
}

func (x *Condition) GetScript() string {
	if x != nil {
		if x, ok := x.Condition.(*Condition_Script); ok {
			return x.Script
		}
	}
	return ""
}

type isCondition_Condition interface {
	isCondition_Condition()
}

type Condition_Match struct {
	Match *Match `protobuf:"bytes,1,opt,name=match,proto3,oneof"`
}

type Condition_Script struct {
	Script string `protobuf:"bytes,2,opt,name=script,proto3,oneof"`
}

func (*Condition_Match) isCondition_Condition() {}

func (*Condition_Script) isCondition_Condition() {}

type Match struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Op:
	//
	//	*Match_All
	//	*Match_Any
	//	*Match_None
	//	*Match_Expr
	Op            isMatch_Op `protobuf_oneof:"op"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Match) ProtoMessage() {}

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

func (x *Match) GetOp() isMatch_Op {
	if x != nil {
		return x.Op
	}
	return nil
}

func (x *Match) GetAll() *Match_ExprList {
	if x != nil {
		if x, ok := x.Op.(*Match_All); ok {
			return x.All
		}
	}
	return nil
}

func (x *Match) GetAny() *Match_ExprList {
	if x != nil {
		if x, ok := x.Op.(*Match_Any); ok {
			return x.Any
		}
	}
	return nil
}

func (x *Match) GetNone() *Match_ExprList {
	if x != nil {
		if x, ok := x.Op.(*Match_None); ok {
			return x.None
		}
	}
	return nil
}

func (x *Match) GetExpr() string {
	if x != nil {
		if x, ok := x.Op.(*Match_Expr); ok {
			return x.Expr
		}
	}
	return ""
}

type isMatch_Op interface {
	isMatch_Op()
}

type Match_All struct {
	All *Match_ExprList `protobuf:"bytes,1,opt,name=all,proto3,oneof"`
}

type Match_Any struct {
	Any *Match_ExprList `protobuf:"bytes,2,opt,name=any,proto3,oneof"`
}

type Match_None struct {
	None *Match_ExprList `protobuf:"bytes,3,opt,name=none,proto3,oneof"`
}

type Match_Expr struct {
	Expr string `protobuf:"bytes,4,opt,name=expr,proto3,oneof"`
}

func (*Match_All) isMatch_Op() {}

func (*Match_Any) isMatch_Op() {}

func (*Match_None) isMatch_Op() {}

func (*Match_Expr) isMatch_Op() {}

type Output struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
	Expr          string       `protobuf:"bytes,1,opt,name=expr,proto3" json:"expr,omitempty"`
	When          *Output_When `protobuf:"bytes,2,opt,name=when,proto3" json:"when,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Output) ProtoMessage() {}

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

// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
func (x *Output) GetExpr() string {
	if x != nil {
		return x.Expr
	}
	return ""
}

func (x *Output) GetWhen() *Output_When {
	if x != nil {
		return x.When
	}
	return nil
}

type Schemas struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	PrincipalSchema *Schemas_Schema        `protobuf:"bytes,1,opt,name=principal_schema,json=principalSchema,proto3" json:"principal_schema,omitempty"`
	ResourceSchema  *Schemas_Schema        `protobuf:"bytes,2,opt,name=resource_schema,json=resourceSchema,proto3" json:"resource_schema,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Schemas) ProtoMessage() {}

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

func (x *Schemas) GetPrincipalSchema() *Schemas_Schema {
	if x != nil {
		return x.PrincipalSchema
	}
	return nil
}

func (x *Schemas) GetResourceSchema() *Schemas_Schema {
	if x != nil {
		return x.ResourceSchema
	}
	return nil
}

type TestFixture struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestFixture) ProtoMessage() {}

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

type TestFixtureGroup struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TestFixtureGroup) ProtoMessage() {}

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

type TestOptions struct {
	state                protoimpl.MessageState     `protogen:"open.v1"`
	Now                  *timestamppb.Timestamp     `protobuf:"bytes,1,opt,name=now,proto3" json:"now,omitempty"`
	LenientScopeSearch   bool                       `protobuf:"varint,2,opt,name=lenient_scope_search,json=lenientScopeSearch,proto3" json:"lenient_scope_search,omitempty"`
	Globals              map[string]*structpb.Value `protobuf:"bytes,3,rep,name=globals,proto3" json:"globals,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	DefaultPolicyVersion string                     `protobuf:"bytes,4,opt,name=default_policy_version,json=defaultPolicyVersion,proto3" json:"default_policy_version,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*TestOptions) ProtoMessage() {}

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

func (x *TestOptions) GetNow() *timestamppb.Timestamp {
	if x != nil {
		return x.Now
	}
	return nil
}

func (x *TestOptions) GetLenientScopeSearch() bool {
	if x != nil {
		return x.LenientScopeSearch
	}
	return false
}

func (x *TestOptions) GetGlobals() map[string]*structpb.Value {
	if x != nil {
		return x.Globals
	}
	return nil
}

func (x *TestOptions) GetDefaultPolicyVersion() string {
	if x != nil {
		return x.DefaultPolicyVersion
	}
	return ""
}

type TestSuite struct {
	state           protoimpl.MessageState                  `protogen:"open.v1"`
	Name            string                                  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Description     string                                  `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	Skip            bool                                    `protobuf:"varint,3,opt,name=skip,proto3" json:"skip,omitempty"`
	SkipReason      string                                  `protobuf:"bytes,4,opt,name=skip_reason,json=skipReason,proto3" json:"skip_reason,omitempty"`
	Tests           []*TestTable                            `protobuf:"bytes,5,rep,name=tests,proto3" json:"tests,omitempty"`
	Principals      map[string]*v11.Principal               `protobuf:"bytes,6,rep,name=principals,proto3" json:"principals,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Resources       map[string]*v11.Resource                `protobuf:"bytes,7,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	AuxData         map[string]*v11.AuxData                 `protobuf:"bytes,8,rep,name=aux_data,json=auxData,proto3" json:"aux_data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Options         *TestOptions                            `protobuf:"bytes,9,opt,name=options,proto3" json:"options,omitempty"`
	JsonSchema      string                                  `protobuf:"bytes,10,opt,name=json_schema,json=$schema,proto3" json:"json_schema,omitempty"`
	PrincipalGroups map[string]*TestFixtureGroup_Principals `protobuf:"bytes,11,rep,name=principal_groups,json=principalGroups,proto3" json:"principal_groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	ResourceGroups  map[string]*TestFixtureGroup_Resources  `protobuf:"bytes,12,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*TestSuite) ProtoMessage() {}

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

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

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

func (x *TestSuite) GetSkip() bool {
	if x != nil {
		return x.Skip
	}
	return false
}

func (x *TestSuite) GetSkipReason() string {
	if x != nil {
		return x.SkipReason
	}
	return ""
}

func (x *TestSuite) GetTests() []*TestTable {
	if x != nil {
		return x.Tests
	}
	return nil
}

func (x *TestSuite) GetPrincipals() map[string]*v11.Principal {
	if x != nil {
		return x.Principals
	}
	return nil
}

func (x *TestSuite) GetResources() map[string]*v11.Resource {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *TestSuite) GetAuxData() map[string]*v11.AuxData {
	if x != nil {
		return x.AuxData
	}
	return nil
}

func (x *TestSuite) GetOptions() *TestOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *TestSuite) GetJsonSchema() string {
	if x != nil {
		return x.JsonSchema
	}
	return ""
}

func (x *TestSuite) GetPrincipalGroups() map[string]*TestFixtureGroup_Principals {
	if x != nil {
		return x.PrincipalGroups
	}
	return nil
}

func (x *TestSuite) GetResourceGroups() map[string]*TestFixtureGroup_Resources {
	if x != nil {
		return x.ResourceGroups
	}
	return nil
}

type TestTable struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Name          string                   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Description   string                   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	Skip          bool                     `protobuf:"varint,3,opt,name=skip,proto3" json:"skip,omitempty"`
	SkipReason    string                   `protobuf:"bytes,4,opt,name=skip_reason,json=skipReason,proto3" json:"skip_reason,omitempty"`
	Input         *TestTable_Input         `protobuf:"bytes,5,opt,name=input,proto3" json:"input,omitempty"`
	Expected      []*TestTable_Expectation `protobuf:"bytes,6,rep,name=expected,proto3" json:"expected,omitempty"`
	Options       *TestOptions             `protobuf:"bytes,7,opt,name=options,proto3" json:"options,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestTable) Reset() {
	*x = TestTable{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestTable) ProtoMessage() {}

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

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

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

func (x *TestTable) GetSkip() bool {
	if x != nil {
		return x.Skip
	}
	return false
}

func (x *TestTable) GetSkipReason() string {
	if x != nil {
		return x.SkipReason
	}
	return ""
}

func (x *TestTable) GetInput() *TestTable_Input {
	if x != nil {
		return x.Input
	}
	return nil
}

func (x *TestTable) GetExpected() []*TestTable_Expectation {
	if x != nil {
		return x.Expected
	}
	return nil
}

func (x *TestTable) GetOptions() *TestOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

type Test struct {
	state           protoimpl.MessageState         `protogen:"open.v1"`
	Name            *Test_TestName                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Description     string                         `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	Skip            bool                           `protobuf:"varint,3,opt,name=skip,proto3" json:"skip,omitempty"`
	SkipReason      string                         `protobuf:"bytes,4,opt,name=skip_reason,json=skipReason,proto3" json:"skip_reason,omitempty"`
	Input           *v11.CheckInput                `protobuf:"bytes,5,opt,name=input,proto3" json:"input,omitempty"`
	Expected        map[string]v1.Effect           `protobuf:"bytes,6,rep,name=expected,proto3" json:"expected,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=cerbos.effect.v1.Effect"`
	Options         *TestOptions                   `protobuf:"bytes,7,opt,name=options,proto3" json:"options,omitempty"`
	ExpectedOutputs map[string]*Test_OutputEntries `protobuf:"bytes,8,rep,name=expected_outputs,json=expectedOutputs,proto3" json:"expected_outputs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Test) Reset() {
	*x = Test{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Test) ProtoMessage() {}

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

func (x *Test) GetName() *Test_TestName {
	if x != nil {
		return x.Name
	}
	return nil
}

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

func (x *Test) GetSkip() bool {
	if x != nil {
		return x.Skip
	}
	return false
}

func (x *Test) GetSkipReason() string {
	if x != nil {
		return x.SkipReason
	}
	return ""
}

func (x *Test) GetInput() *v11.CheckInput {
	if x != nil {
		return x.Input
	}
	return nil
}

func (x *Test) GetExpected() map[string]v1.Effect {
	if x != nil {
		return x.Expected
	}
	return nil
}

func (x *Test) GetOptions() *TestOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *Test) GetExpectedOutputs() map[string]*Test_OutputEntries {
	if x != nil {
		return x.ExpectedOutputs
	}
	return nil
}

type TestResults struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Suites        []*TestResults_Suite   `protobuf:"bytes,1,rep,name=suites,proto3" json:"suites,omitempty"`
	Summary       *TestResults_Summary   `protobuf:"bytes,2,opt,name=summary,proto3" json:"summary,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults) Reset() {
	*x = TestResults{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults) ProtoMessage() {}

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

func (x *TestResults) GetSuites() []*TestResults_Suite {
	if x != nil {
		return x.Suites
	}
	return nil
}

func (x *TestResults) GetSummary() *TestResults_Summary {
	if x != nil {
		return x.Summary
	}
	return nil
}

type PrincipalRule_Action struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Action        string                 `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
	Condition     *Condition             `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"`
	Effect        v1.Effect              `protobuf:"varint,3,opt,name=effect,proto3,enum=cerbos.effect.v1.Effect" json:"effect,omitempty"`
	Name          string                 `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	Output        *Output                `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PrincipalRule_Action) Reset() {
	*x = PrincipalRule_Action{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PrincipalRule_Action) ProtoMessage() {}

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

func (x *PrincipalRule_Action) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *PrincipalRule_Action) GetCondition() *Condition {
	if x != nil {
		return x.Condition
	}
	return nil
}

func (x *PrincipalRule_Action) GetEffect() v1.Effect {
	if x != nil {
		return x.Effect
	}
	return v1.Effect(0)
}

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

func (x *PrincipalRule_Action) GetOutput() *Output {
	if x != nil {
		return x.Output
	}
	return nil
}

type Match_ExprList struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Of            []*Match               `protobuf:"bytes,1,rep,name=of,proto3" json:"of,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Match_ExprList) Reset() {
	*x = Match_ExprList{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Match_ExprList) ProtoMessage() {}

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

func (x *Match_ExprList) GetOf() []*Match {
	if x != nil {
		return x.Of
	}
	return nil
}

type Output_When struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	RuleActivated   string                 `protobuf:"bytes,1,opt,name=rule_activated,json=ruleActivated,proto3" json:"rule_activated,omitempty"`
	ConditionNotMet string                 `protobuf:"bytes,2,opt,name=condition_not_met,json=conditionNotMet,proto3" json:"condition_not_met,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Output_When) Reset() {
	*x = Output_When{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Output_When) ProtoMessage() {}

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

func (x *Output_When) GetRuleActivated() string {
	if x != nil {
		return x.RuleActivated
	}
	return ""
}

func (x *Output_When) GetConditionNotMet() string {
	if x != nil {
		return x.ConditionNotMet
	}
	return ""
}

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

func (x *Schemas_IgnoreWhen) Reset() {
	*x = Schemas_IgnoreWhen{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Schemas_IgnoreWhen) ProtoMessage() {}

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

func (x *Schemas_IgnoreWhen) GetActions() []string {
	if x != nil {
		return x.Actions
	}
	return nil
}

type Schemas_Schema struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Ref           string                 `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"`
	IgnoreWhen    *Schemas_IgnoreWhen    `protobuf:"bytes,2,opt,name=ignore_when,json=ignoreWhen,proto3" json:"ignore_when,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Schemas_Schema) Reset() {
	*x = Schemas_Schema{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Schemas_Schema) ProtoMessage() {}

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

func (x *Schemas_Schema) GetRef() string {
	if x != nil {
		return x.Ref
	}
	return ""
}

func (x *Schemas_Schema) GetIgnoreWhen() *Schemas_IgnoreWhen {
	if x != nil {
		return x.IgnoreWhen
	}
	return nil
}

type TestFixture_Principals struct {
	state           protoimpl.MessageState                  `protogen:"open.v1"`
	Principals      map[string]*v11.Principal               `protobuf:"bytes,1,rep,name=principals,proto3" json:"principals,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	JsonSchema      string                                  `protobuf:"bytes,2,opt,name=json_schema,json=$schema,proto3" json:"json_schema,omitempty"`
	PrincipalGroups map[string]*TestFixtureGroup_Principals `protobuf:"bytes,3,rep,name=principal_groups,json=principalGroups,proto3" json:"principal_groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestFixture_Principals) Reset() {
	*x = TestFixture_Principals{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestFixture_Principals) ProtoMessage() {}

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

func (x *TestFixture_Principals) GetPrincipals() map[string]*v11.Principal {
	if x != nil {
		return x.Principals
	}
	return nil
}

func (x *TestFixture_Principals) GetJsonSchema() string {
	if x != nil {
		return x.JsonSchema
	}
	return ""
}

func (x *TestFixture_Principals) GetPrincipalGroups() map[string]*TestFixtureGroup_Principals {
	if x != nil {
		return x.PrincipalGroups
	}
	return nil
}

type TestFixture_Resources struct {
	state          protoimpl.MessageState                 `protogen:"open.v1"`
	Resources      map[string]*v11.Resource               `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	JsonSchema     string                                 `protobuf:"bytes,2,opt,name=json_schema,json=$schema,proto3" json:"json_schema,omitempty"`
	ResourceGroups map[string]*TestFixtureGroup_Resources `protobuf:"bytes,3,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *TestFixture_Resources) Reset() {
	*x = TestFixture_Resources{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestFixture_Resources) ProtoMessage() {}

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

func (x *TestFixture_Resources) GetResources() map[string]*v11.Resource {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *TestFixture_Resources) GetJsonSchema() string {
	if x != nil {
		return x.JsonSchema
	}
	return ""
}

func (x *TestFixture_Resources) GetResourceGroups() map[string]*TestFixtureGroup_Resources {
	if x != nil {
		return x.ResourceGroups
	}
	return nil
}

type TestFixture_AuxData struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	AuxData       map[string]*v11.AuxData `protobuf:"bytes,1,rep,name=aux_data,json=auxData,proto3" json:"aux_data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	JsonSchema    string                  `protobuf:"bytes,2,opt,name=json_schema,json=$schema,proto3" json:"json_schema,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestFixture_AuxData) Reset() {
	*x = TestFixture_AuxData{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestFixture_AuxData) ProtoMessage() {}

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

func (x *TestFixture_AuxData) GetAuxData() map[string]*v11.AuxData {
	if x != nil {
		return x.AuxData
	}
	return nil
}

func (x *TestFixture_AuxData) GetJsonSchema() string {
	if x != nil {
		return x.JsonSchema
	}
	return ""
}

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

func (x *TestFixtureGroup_Principals) Reset() {
	*x = TestFixtureGroup_Principals{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestFixtureGroup_Principals) ProtoMessage() {}

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

func (x *TestFixtureGroup_Principals) GetPrincipals() []string {
	if x != nil {
		return x.Principals
	}
	return nil
}

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

func (x *TestFixtureGroup_Resources) Reset() {
	*x = TestFixtureGroup_Resources{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestFixtureGroup_Resources) ProtoMessage() {}

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

func (x *TestFixtureGroup_Resources) GetResources() []string {
	if x != nil {
		return x.Resources
	}
	return nil
}

type TestTable_Input struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Principals      []string               `protobuf:"bytes,1,rep,name=principals,proto3" json:"principals,omitempty"`
	Resources       []string               `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
	Actions         []string               `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
	AuxData         string                 `protobuf:"bytes,4,opt,name=aux_data,json=auxData,proto3" json:"aux_data,omitempty"`
	PrincipalGroups []string               `protobuf:"bytes,5,rep,name=principal_groups,json=principalGroups,proto3" json:"principal_groups,omitempty"`
	ResourceGroups  []string               `protobuf:"bytes,6,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestTable_Input) Reset() {
	*x = TestTable_Input{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[54]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestTable_Input) ProtoMessage() {}

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

func (x *TestTable_Input) GetPrincipals() []string {
	if x != nil {
		return x.Principals
	}
	return nil
}

func (x *TestTable_Input) GetResources() []string {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *TestTable_Input) GetActions() []string {
	if x != nil {
		return x.Actions
	}
	return nil
}

func (x *TestTable_Input) GetAuxData() string {
	if x != nil {
		return x.AuxData
	}
	return ""
}

func (x *TestTable_Input) GetPrincipalGroups() []string {
	if x != nil {
		return x.PrincipalGroups
	}
	return nil
}

func (x *TestTable_Input) GetResourceGroups() []string {
	if x != nil {
		return x.ResourceGroups
	}
	return nil
}

type TestTable_OutputExpectations struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Action        string                 `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
	Expected      []*v11.OutputEntry     `protobuf:"bytes,2,rep,name=expected,proto3" json:"expected,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestTable_OutputExpectations) Reset() {
	*x = TestTable_OutputExpectations{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[55]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestTable_OutputExpectations) ProtoMessage() {}

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

func (x *TestTable_OutputExpectations) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *TestTable_OutputExpectations) GetExpected() []*v11.OutputEntry {
	if x != nil {
		return x.Expected
	}
	return nil
}

type TestTable_Expectation struct {
	state           protoimpl.MessageState          `protogen:"open.v1"`
	Principal       string                          `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"`
	Resource        string                          `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
	Actions         map[string]v1.Effect            `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=cerbos.effect.v1.Effect"`
	Outputs         []*TestTable_OutputExpectations `protobuf:"bytes,4,rep,name=outputs,proto3" json:"outputs,omitempty"`
	Principals      []string                        `protobuf:"bytes,5,rep,name=principals,proto3" json:"principals,omitempty"`
	Resources       []string                        `protobuf:"bytes,6,rep,name=resources,proto3" json:"resources,omitempty"`
	PrincipalGroups []string                        `protobuf:"bytes,7,rep,name=principal_groups,json=principalGroups,proto3" json:"principal_groups,omitempty"`
	ResourceGroups  []string                        `protobuf:"bytes,8,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestTable_Expectation) Reset() {
	*x = TestTable_Expectation{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[56]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestTable_Expectation) ProtoMessage() {}

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

func (x *TestTable_Expectation) GetPrincipal() string {
	if x != nil {
		return x.Principal
	}
	return ""
}

func (x *TestTable_Expectation) GetResource() string {
	if x != nil {
		return x.Resource
	}
	return ""
}

func (x *TestTable_Expectation) GetActions() map[string]v1.Effect {
	if x != nil {
		return x.Actions
	}
	return nil
}

func (x *TestTable_Expectation) GetOutputs() []*TestTable_OutputExpectations {
	if x != nil {
		return x.Outputs
	}
	return nil
}

func (x *TestTable_Expectation) GetPrincipals() []string {
	if x != nil {
		return x.Principals
	}
	return nil
}

func (x *TestTable_Expectation) GetResources() []string {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *TestTable_Expectation) GetPrincipalGroups() []string {
	if x != nil {
		return x.PrincipalGroups
	}
	return nil
}

func (x *TestTable_Expectation) GetResourceGroups() []string {
	if x != nil {
		return x.ResourceGroups
	}
	return nil
}

type Test_TestName struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TestTableName string                 `protobuf:"bytes,1,opt,name=test_table_name,json=testTableName,proto3" json:"test_table_name,omitempty"`
	PrincipalKey  string                 `protobuf:"bytes,2,opt,name=principal_key,json=principalKey,proto3" json:"principal_key,omitempty"`
	ResourceKey   string                 `protobuf:"bytes,3,opt,name=resource_key,json=resourceKey,proto3" json:"resource_key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Test_TestName) Reset() {
	*x = Test_TestName{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[58]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Test_TestName) ProtoMessage() {}

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

func (x *Test_TestName) GetTestTableName() string {
	if x != nil {
		return x.TestTableName
	}
	return ""
}

func (x *Test_TestName) GetPrincipalKey() string {
	if x != nil {
		return x.PrincipalKey
	}
	return ""
}

func (x *Test_TestName) GetResourceKey() string {
	if x != nil {
		return x.ResourceKey
	}
	return ""
}

type Test_OutputEntries struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Entries       map[string]*structpb.Value `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Test_OutputEntries) Reset() {
	*x = Test_OutputEntries{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[59]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Test_OutputEntries) ProtoMessage() {}

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

func (x *Test_OutputEntries) GetEntries() map[string]*structpb.Value {
	if x != nil {
		return x.Entries
	}
	return nil
}

type TestResults_Tally struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Result        TestResults_Result     `protobuf:"varint,1,opt,name=result,proto3,enum=cerbos.policy.v1.TestResults_Result" json:"result,omitempty"`
	Count         uint32                 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Tally) Reset() {
	*x = TestResults_Tally{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[63]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Tally) ProtoMessage() {}

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

func (x *TestResults_Tally) GetResult() TestResults_Result {
	if x != nil {
		return x.Result
	}
	return TestResults_RESULT_UNSPECIFIED
}

func (x *TestResults_Tally) GetCount() uint32 {
	if x != nil {
		return x.Count
	}
	return 0
}

type TestResults_Summary struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OverallResult TestResults_Result     `protobuf:"varint,1,opt,name=overall_result,json=overallResult,proto3,enum=cerbos.policy.v1.TestResults_Result" json:"overall_result,omitempty"`
	TestsCount    uint32                 `protobuf:"varint,2,opt,name=tests_count,json=testsCount,proto3" json:"tests_count,omitempty"`
	ResultCounts  []*TestResults_Tally   `protobuf:"bytes,3,rep,name=result_counts,json=resultCounts,proto3" json:"result_counts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Summary) Reset() {
	*x = TestResults_Summary{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[64]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Summary) ProtoMessage() {}

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

func (x *TestResults_Summary) GetOverallResult() TestResults_Result {
	if x != nil {
		return x.OverallResult
	}
	return TestResults_RESULT_UNSPECIFIED
}

func (x *TestResults_Summary) GetTestsCount() uint32 {
	if x != nil {
		return x.TestsCount
	}
	return 0
}

func (x *TestResults_Summary) GetResultCounts() []*TestResults_Tally {
	if x != nil {
		return x.ResultCounts
	}
	return nil
}

type TestResults_Suite struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	File  string                 `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"`
	Name  string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
	Principals    []*TestResults_Principal `protobuf:"bytes,3,rep,name=principals,proto3" json:"principals,omitempty"`
	Summary       *TestResults_Summary     `protobuf:"bytes,4,opt,name=summary,proto3" json:"summary,omitempty"`
	Error         string                   `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
	TestCases     []*TestResults_TestCase  `protobuf:"bytes,6,rep,name=test_cases,json=testCases,proto3" json:"test_cases,omitempty"`
	Description   string                   `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
	SkipReason    string                   `protobuf:"bytes,8,opt,name=skip_reason,json=skipReason,proto3" json:"skip_reason,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Suite) Reset() {
	*x = TestResults_Suite{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[65]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Suite) ProtoMessage() {}

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

func (x *TestResults_Suite) GetFile() string {
	if x != nil {
		return x.File
	}
	return ""
}

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

// Deprecated: Marked as deprecated in cerbos/policy/v1/policy.proto.
func (x *TestResults_Suite) GetPrincipals() []*TestResults_Principal {
	if x != nil {
		return x.Principals
	}
	return nil
}

func (x *TestResults_Suite) GetSummary() *TestResults_Summary {
	if x != nil {
		return x.Summary
	}
	return nil
}

func (x *TestResults_Suite) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *TestResults_Suite) GetTestCases() []*TestResults_TestCase {
	if x != nil {
		return x.TestCases
	}
	return nil
}

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

func (x *TestResults_Suite) GetSkipReason() string {
	if x != nil {
		return x.SkipReason
	}
	return ""
}

type TestResults_TestCase struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Name          string                   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Principals    []*TestResults_Principal `protobuf:"bytes,2,rep,name=principals,proto3" json:"principals,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_TestCase) Reset() {
	*x = TestResults_TestCase{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[66]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_TestCase) ProtoMessage() {}

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

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

func (x *TestResults_TestCase) GetPrincipals() []*TestResults_Principal {
	if x != nil {
		return x.Principals
	}
	return nil
}

type TestResults_Principal struct {
	state         protoimpl.MessageState  `protogen:"open.v1"`
	Name          string                  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Resources     []*TestResults_Resource `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Principal) Reset() {
	*x = TestResults_Principal{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[67]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Principal) ProtoMessage() {}

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

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

func (x *TestResults_Principal) GetResources() []*TestResults_Resource {
	if x != nil {
		return x.Resources
	}
	return nil
}

type TestResults_Resource struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Actions       []*TestResults_Action  `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Resource) Reset() {
	*x = TestResults_Resource{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[68]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Resource) ProtoMessage() {}

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

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

func (x *TestResults_Resource) GetActions() []*TestResults_Action {
	if x != nil {
		return x.Actions
	}
	return nil
}

type TestResults_Action struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Details       *TestResults_Details   `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Action) Reset() {
	*x = TestResults_Action{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[69]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Action) ProtoMessage() {}

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

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

func (x *TestResults_Action) GetDetails() *TestResults_Details {
	if x != nil {
		return x.Details
	}
	return nil
}

type TestResults_Details struct {
	state  protoimpl.MessageState `protogen:"open.v1"`
	Result TestResults_Result     `protobuf:"varint,1,opt,name=result,proto3,enum=cerbos.policy.v1.TestResults_Result" json:"result,omitempty"`
	// Types that are valid to be assigned to Outcome:
	//
	//	*TestResults_Details_Failure
	//	*TestResults_Details_Error
	//	*TestResults_Details_Success
	//	*TestResults_Details_SkipReason
	Outcome       isTestResults_Details_Outcome `protobuf_oneof:"outcome"`
	EngineTrace   []*v11.Trace                  `protobuf:"bytes,4,rep,name=engine_trace,json=engineTrace,proto3" json:"engine_trace,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Details) Reset() {
	*x = TestResults_Details{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[70]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Details) ProtoMessage() {}

func (x *TestResults_Details) ProtoReflect() protoreflect.Message {
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[70]
	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 TestResults_Details.ProtoReflect.Descriptor instead.
func (*TestResults_Details) Descriptor() ([]byte, []int) {
	return file_cerbos_policy_v1_policy_proto_rawDescGZIP(), []int{25, 7}
}

func (x *TestResults_Details) GetResult() TestResults_Result {
	if x != nil {
		return x.Result
	}
	return TestResults_RESULT_UNSPECIFIED
}

func (x *TestResults_Details) GetOutcome() isTestResults_Details_Outcome {
	if x != nil {
		return x.Outcome
	}
	return nil
}

func (x *TestResults_Details) GetFailure() *TestResults_Failure {
	if x != nil {
		if x, ok := x.Outcome.(*TestResults_Details_Failure); ok {
			return x.Failure
		}
	}
	return nil
}

func (x *TestResults_Details) GetError() string {
	if x != nil {
		if x, ok := x.Outcome.(*TestResults_Details_Error); ok {
			return x.Error
		}
	}
	return ""
}

func (x *TestResults_Details) GetSuccess() *TestResults_Success {
	if x != nil {
		if x, ok := x.Outcome.(*TestResults_Details_Success); ok {
			return x.Success
		}
	}
	return nil
}

func (x *TestResults_Details) GetSkipReason() string {
	if x != nil {
		if x, ok := x.Outcome.(*TestResults_Details_SkipReason); ok {
			return x.SkipReason
		}
	}
	return ""
}

func (x *TestResults_Details) GetEngineTrace() []*v11.Trace {
	if x != nil {
		return x.EngineTrace
	}
	return nil
}

type isTestResults_Details_Outcome interface {
	isTestResults_Details_Outcome()
}

type TestResults_Details_Failure struct {
	Failure *TestResults_Failure `protobuf:"bytes,2,opt,name=failure,proto3,oneof"`
}

type TestResults_Details_Error struct {
	Error string `protobuf:"bytes,3,opt,name=error,proto3,oneof"`
}

type TestResults_Details_Success struct {
	Success *TestResults_Success `protobuf:"bytes,5,opt,name=success,proto3,oneof"`
}

type TestResults_Details_SkipReason struct {
	SkipReason string `protobuf:"bytes,6,opt,name=skip_reason,json=skipReason,proto3,oneof"`
}

func (*TestResults_Details_Failure) isTestResults_Details_Outcome() {}

func (*TestResults_Details_Error) isTestResults_Details_Outcome() {}

func (*TestResults_Details_Success) isTestResults_Details_Outcome() {}

func (*TestResults_Details_SkipReason) isTestResults_Details_Outcome() {}

type TestResults_OutputFailure struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Src   string                 `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"`
	// Types that are valid to be assigned to Outcome:
	//
	//	*TestResults_OutputFailure_Mismatched
	//	*TestResults_OutputFailure_Missing
	Outcome       isTestResults_OutputFailure_Outcome `protobuf_oneof:"outcome"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_OutputFailure) Reset() {
	*x = TestResults_OutputFailure{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[71]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_OutputFailure) ProtoMessage() {}

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

func (x *TestResults_OutputFailure) GetSrc() string {
	if x != nil {
		return x.Src
	}
	return ""
}

func (x *TestResults_OutputFailure) GetOutcome() isTestResults_OutputFailure_Outcome {
	if x != nil {
		return x.Outcome
	}
	return nil
}

func (x *TestResults_OutputFailure) GetMismatched() *TestResults_OutputFailure_MismatchedValue {
	if x != nil {
		if x, ok := x.Outcome.(*TestResults_OutputFailure_Mismatched); ok {
			return x.Mismatched
		}
	}
	return nil
}

func (x *TestResults_OutputFailure) GetMissing() *TestResults_OutputFailure_MissingValue {
	if x != nil {
		if x, ok := x.Outcome.(*TestResults_OutputFailure_Missing); ok {
			return x.Missing
		}
	}
	return nil
}

type isTestResults_OutputFailure_Outcome interface {
	isTestResults_OutputFailure_Outcome()
}

type TestResults_OutputFailure_Mismatched struct {
	Mismatched *TestResults_OutputFailure_MismatchedValue `protobuf:"bytes,2,opt,name=mismatched,proto3,oneof"`
}

type TestResults_OutputFailure_Missing struct {
	Missing *TestResults_OutputFailure_MissingValue `protobuf:"bytes,3,opt,name=missing,proto3,oneof"`
}

func (*TestResults_OutputFailure_Mismatched) isTestResults_OutputFailure_Outcome() {}

func (*TestResults_OutputFailure_Missing) isTestResults_OutputFailure_Outcome() {}

type TestResults_Failure struct {
	state         protoimpl.MessageState       `protogen:"open.v1"`
	Expected      v1.Effect                    `protobuf:"varint,1,opt,name=expected,proto3,enum=cerbos.effect.v1.Effect" json:"expected,omitempty"`
	Actual        v1.Effect                    `protobuf:"varint,2,opt,name=actual,proto3,enum=cerbos.effect.v1.Effect" json:"actual,omitempty"`
	Outputs       []*TestResults_OutputFailure `protobuf:"bytes,3,rep,name=outputs,proto3" json:"outputs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Failure) Reset() {
	*x = TestResults_Failure{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[72]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Failure) ProtoMessage() {}

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

func (x *TestResults_Failure) GetExpected() v1.Effect {
	if x != nil {
		return x.Expected
	}
	return v1.Effect(0)
}

func (x *TestResults_Failure) GetActual() v1.Effect {
	if x != nil {
		return x.Actual
	}
	return v1.Effect(0)
}

func (x *TestResults_Failure) GetOutputs() []*TestResults_OutputFailure {
	if x != nil {
		return x.Outputs
	}
	return nil
}

type TestResults_Success struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Effect        v1.Effect              `protobuf:"varint,1,opt,name=effect,proto3,enum=cerbos.effect.v1.Effect" json:"effect,omitempty"`
	Outputs       []*v11.OutputEntry     `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_Success) Reset() {
	*x = TestResults_Success{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[73]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_Success) ProtoMessage() {}

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

func (x *TestResults_Success) GetEffect() v1.Effect {
	if x != nil {
		return x.Effect
	}
	return v1.Effect(0)
}

func (x *TestResults_Success) GetOutputs() []*v11.OutputEntry {
	if x != nil {
		return x.Outputs
	}
	return nil
}

type TestResults_OutputFailure_MismatchedValue struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Expected      *structpb.Value        `protobuf:"bytes,1,opt,name=expected,proto3" json:"expected,omitempty"`
	Actual        *structpb.Value        `protobuf:"bytes,2,opt,name=actual,proto3" json:"actual,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_OutputFailure_MismatchedValue) Reset() {
	*x = TestResults_OutputFailure_MismatchedValue{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[74]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_OutputFailure_MismatchedValue) ProtoMessage() {}

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

func (x *TestResults_OutputFailure_MismatchedValue) GetExpected() *structpb.Value {
	if x != nil {
		return x.Expected
	}
	return nil
}

func (x *TestResults_OutputFailure_MismatchedValue) GetActual() *structpb.Value {
	if x != nil {
		return x.Actual
	}
	return nil
}

type TestResults_OutputFailure_MissingValue struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Expected      *structpb.Value        `protobuf:"bytes,1,opt,name=expected,proto3" json:"expected,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResults_OutputFailure_MissingValue) Reset() {
	*x = TestResults_OutputFailure_MissingValue{}
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[75]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResults_OutputFailure_MissingValue) ProtoMessage() {}

func (x *TestResults_OutputFailure_MissingValue) ProtoReflect() protoreflect.Message {
	mi := &file_cerbos_policy_v1_policy_proto_msgTypes[75]
	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 TestResults_OutputFailure_MissingValue.ProtoReflect.Descriptor instead.
func (*TestResults_OutputFailure_MissingValue) Descriptor() ([]byte, []int) {
	return file_cerbos_policy_v1_policy_proto_rawDescGZIP(), []int{25, 8, 1}
}

func (x *TestResults_OutputFailure_MissingValue) GetExpected() *structpb.Value {
	if x != nil {
		return x.Expected
	}
	return nil
}

var File_cerbos_policy_v1_policy_proto protoreflect.FileDescriptor

const file_cerbos_policy_v1_policy_proto_rawDesc = "" +
	"\n" +
	"\x1dcerbos/policy/v1/policy.proto\x12\x10cerbos.policy.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1dcerbos/effect/v1/effect.proto\x1a\x1dcerbos/engine/v1/engine.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xbe\x06\n" +
	"\x06Policy\x12<\n" +
	"\vapi_version\x18\x01 \x01(\tB\x1b\xbaH\x18\xc8\x01\x01r\x13\n" +
	"\x11api.cerbos.dev/v1R\n" +
	"apiVersion\x12\x1a\n" +
	"\bdisabled\x18\x02 \x01(\bR\bdisabled\x12 \n" +
	"\vdescription\x18\x03 \x01(\tR\vdescription\x126\n" +
	"\bmetadata\x18\x04 \x01(\v2\x1a.cerbos.policy.v1.MetadataR\bmetadata\x12K\n" +
	"\x0fresource_policy\x18\x05 \x01(\v2 .cerbos.policy.v1.ResourcePolicyH\x00R\x0eresourcePolicy\x12N\n" +
	"\x10principal_policy\x18\x06 \x01(\v2!.cerbos.policy.v1.PrincipalPolicyH\x00R\x0fprincipalPolicy\x12E\n" +
	"\rderived_roles\x18\a \x01(\v2\x1e.cerbos.policy.v1.DerivedRolesH\x00R\fderivedRoles\x12N\n" +
	"\x10export_variables\x18\n" +
	" \x01(\v2!.cerbos.policy.v1.ExportVariablesH\x00R\x0fexportVariables\x12?\n" +
	"\vrole_policy\x18\v \x01(\v2\x1c.cerbos.policy.v1.RolePolicyH\x00R\n" +
	"rolePolicy\x12N\n" +
	"\x10export_constants\x18\f \x01(\v2!.cerbos.policy.v1.ExportConstantsH\x00R\x0fexportConstants\x12I\n" +
	"\tvariables\x18\b \x03(\v2'.cerbos.policy.v1.Policy.VariablesEntryB\x02\x18\x01R\tvariables\x12\x1c\n" +
	"\vjson_schema\x18\t \x01(\tR\a$schema\x1a<\n" +
	"\x0eVariablesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x14\n" +
	"\vpolicy_type\x12\x05\xbaH\x02\b\x01\"\xbd\x01\n" +
	"\x10SourceAttributes\x12R\n" +
	"\n" +
	"attributes\x18\x01 \x03(\v22.cerbos.policy.v1.SourceAttributes.AttributesEntryR\n" +
	"attributes\x1aU\n" +
	"\x0fAttributesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x05value:\x028\x01\"\x95\x03\n" +
	"\bMetadata\x12\x1f\n" +
	"\vsource_file\x18\x01 \x01(\tR\n" +
	"sourceFile\x12M\n" +
	"\vannotations\x18\x02 \x03(\v2+.cerbos.policy.v1.Metadata.AnnotationsEntryR\vannotations\x120\n" +
	"\x04hash\x18\x03 \x01(\v2\x1c.google.protobuf.UInt64ValueR\x04hash\x12+\n" +
	"\x0fstore_identifer\x18\x04 \x01(\tB\x02\x18\x01R\x0estoreIdentifer\x12)\n" +
	"\x10store_identifier\x18\x05 \x01(\tR\x0fstoreIdentifier\x12O\n" +
	"\x11source_attributes\x18\x06 \x01(\v2\".cerbos.policy.v1.SourceAttributesR\x10sourceAttributes\x1a>\n" +
	"\x10AnnotationsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb5\x04\n" +
	"\x0eResourcePolicy\x125\n" +
	"\bresource\x18\x01 \x01(\tB\x19\xbaH\x16\xc8\x01\x01r\x112\x0f^[^!*?\\[\\]{}]+$R\bresource\x12+\n" +
	"\aversion\x18\x02 \x01(\tB\x11\xbaH\x0e\xc8\x01\x01r\t2\a^[\\w]+$R\aversion\x12K\n" +
	"\x14import_derived_roles\x18\x03 \x03(\tB\x19\xbaH\x16\x92\x01\x13\x18\x01\"\x0fr\r2\v^[\\w\\-\\.]+$R\x12importDerivedRoles\x124\n" +
	"\x05rules\x18\x04 \x03(\v2\x1e.cerbos.policy.v1.ResourceRuleR\x05rules\x12@\n" +
	"\x05scope\x18\x05 \x01(\tB*\xbaH'r%2#^([0-9a-zA-Z][\\w\\-]*(\\.[\\w\\-]*)*)*$R\x05scope\x123\n" +
	"\aschemas\x18\x06 \x01(\v2\x19.cerbos.policy.v1.SchemasR\aschemas\x129\n" +
	"\tvariables\x18\a \x01(\v2\x1b.cerbos.policy.v1.VariablesR\tvariables\x12O\n" +
	"\x11scope_permissions\x18\b \x01(\x0e2\".cerbos.policy.v1.ScopePermissionsR\x10scopePermissions\x129\n" +
	"\tconstants\x18\t \x01(\v2\x1b.cerbos.policy.v1.ConstantsR\tconstants\"\x86\x03\n" +
	"\fResourceRule\x12-\n" +
	"\aactions\x18\x01 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\aactions\x12>\n" +
	"\rderived_roles\x18\x02 \x03(\tB\x19\xbaH\x16\x92\x01\x13\x18\x01\"\x0fr\r2\v^[\\w\\-\\.]+$R\fderivedRoles\x12$\n" +
	"\x05roles\x18\x03 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\x05roles\x129\n" +
	"\tcondition\x18\x04 \x01(\v2\x1b.cerbos.policy.v1.ConditionR\tcondition\x12?\n" +
	"\x06effect\x18\x05 \x01(\x0e2\x18.cerbos.effect.v1.EffectB\r\xbaH\n" +
	"\xc8\x01\x01\x82\x01\x04\x18\x01\x18\x02R\x06effect\x123\n" +
	"\x04name\x18\x06 \x01(\tB\x1f\xbaH\x1cr\x1a2\x18^([a-zA-Z][\\w\\@\\.\\-]*)*$R\x04name\x120\n" +
	"\x06output\x18\a \x01(\v2\x18.cerbos.policy.v1.OutputR\x06output\"\xd6\x02\n" +
	"\n" +
	"RolePolicy\x12,\n" +
	"\x04role\x18\x01 \x01(\tB\x16\xbaH\x13r\x112\x0f^[^!*?\\[\\]{}]+$H\x00R\x04role\x121\n" +
	"\fparent_roles\x18\x05 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\vparentRoles\x12@\n" +
	"\x05scope\x18\x02 \x01(\tB*\xbaH'r%2#^([0-9a-zA-Z][\\w\\-]*(\\.[\\w\\-]*)*)*$R\x05scope\x120\n" +
	"\x05rules\x18\x03 \x03(\v2\x1a.cerbos.policy.v1.RoleRuleR\x05rules\x12]\n" +
	"\x11scope_permissions\x18\x04 \x01(\x0e2\".cerbos.policy.v1.ScopePermissionsB\f\xbaH\a\x82\x01\x04\x18\x00\x18\x02\x18\x01R\x10scopePermissionsB\x14\n" +
	"\vpolicy_type\x12\x05\xbaH\x02\b\x01\"\xa7\x01\n" +
	"\bRoleRule\x12&\n" +
	"\bresource\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\bresource\x128\n" +
	"\rallow_actions\x18\x02 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\fallowActions\x129\n" +
	"\tcondition\x18\x03 \x01(\v2\x1b.cerbos.policy.v1.ConditionR\tcondition\"\xb7\x03\n" +
	"\x0fPrincipalPolicy\x127\n" +
	"\tprincipal\x18\x01 \x01(\tB\x19\xbaH\x16\xc8\x01\x01r\x112\x0f^[^!*?\\[\\]{}]+$R\tprincipal\x12+\n" +
	"\aversion\x18\x02 \x01(\tB\x11\xbaH\x0e\xc8\x01\x01r\t2\a^[\\w]+$R\aversion\x125\n" +
	"\x05rules\x18\x03 \x03(\v2\x1f.cerbos.policy.v1.PrincipalRuleR\x05rules\x12@\n" +
	"\x05scope\x18\x04 \x01(\tB*\xbaH'r%2#^([0-9a-zA-Z][\\w\\-]*(\\.[\\w\\-]*)*)*$R\x05scope\x129\n" +
	"\tvariables\x18\x05 \x01(\v2\x1b.cerbos.policy.v1.VariablesR\tvariables\x12O\n" +
	"\x11scope_permissions\x18\x06 \x01(\x0e2\".cerbos.policy.v1.ScopePermissionsR\x10scopePermissions\x129\n" +
	"\tconstants\x18\a \x01(\v2\x1b.cerbos.policy.v1.ConstantsR\tconstants\"\x98\x03\n" +
	"\rPrincipalRule\x12&\n" +
	"\bresource\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\bresource\x12M\n" +
	"\aactions\x18\x02 \x03(\v2&.cerbos.policy.v1.PrincipalRule.ActionB\v\xbaH\b\xc8\x01\x01\x92\x01\x02\b\x01R\aactions\x1a\x8f\x02\n" +
	"\x06Action\x12\"\n" +
	"\x06action\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\x06action\x129\n" +
	"\tcondition\x18\x02 \x01(\v2\x1b.cerbos.policy.v1.ConditionR\tcondition\x12?\n" +
	"\x06effect\x18\x03 \x01(\x0e2\x18.cerbos.effect.v1.EffectB\r\xbaH\n" +
	"\xc8\x01\x01\x82\x01\x04\x18\x01\x18\x02R\x06effect\x123\n" +
	"\x04name\x18\x04 \x01(\tB\x1f\xbaH\x1cr\x1a2\x18^([a-zA-Z][\\w\\@\\.\\-]*)*$R\x04name\x120\n" +
	"\x06output\x18\x05 \x01(\v2\x18.cerbos.policy.v1.OutputR\x06output\"\xfb\x01\n" +
	"\fDerivedRoles\x12+\n" +
	"\x04name\x18\x01 \x01(\tB\x17\xbaH\x14\xc8\x01\x01r\x0f\x10\x012\v^[\\w\\-\\.]+$R\x04name\x12H\n" +
	"\vdefinitions\x18\x02 \x03(\v2\x19.cerbos.policy.v1.RoleDefB\v\xbaH\b\xc8\x01\x01\x92\x01\x02\b\x01R\vdefinitions\x129\n" +
	"\tvariables\x18\x03 \x01(\v2\x1b.cerbos.policy.v1.VariablesR\tvariables\x129\n" +
	"\tconstants\x18\x04 \x01(\v2\x1b.cerbos.policy.v1.ConstantsR\tconstants\"\xa7\x01\n" +
	"\aRoleDef\x12)\n" +
	"\x04name\x18\x01 \x01(\tB\x15\xbaH\x12\xc8\x01\x01r\r2\v^[\\w\\-\\.]+$R\x04name\x126\n" +
	"\fparent_roles\x18\x02 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\vparentRoles\x129\n" +
	"\tcondition\x18\x03 \x01(\v2\x1b.cerbos.policy.v1.ConditionR\tcondition\"\xec\x01\n" +
	"\x0fExportConstants\x12+\n" +
	"\x04name\x18\x01 \x01(\tB\x17\xbaH\x14\xc8\x01\x01r\x0f\x10\x012\v^[\\w\\-\\.]+$R\x04name\x12T\n" +
	"\vdefinitions\x18\x02 \x03(\v22.cerbos.policy.v1.ExportConstants.DefinitionsEntryR\vdefinitions\x1aV\n" +
	"\x10DefinitionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x05value:\x028\x01\"\xce\x01\n" +
	"\tConstants\x121\n" +
	"\x06import\x18\x01 \x03(\tB\x19\xbaH\x16\x92\x01\x13\x18\x01\"\x0fr\r2\v^[\\w\\-\\.]+$R\x06import\x12<\n" +
	"\x05local\x18\x02 \x03(\v2&.cerbos.policy.v1.Constants.LocalEntryR\x05local\x1aP\n" +
	"\n" +
	"LocalEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x05value:\x028\x01\"\xd4\x01\n" +
	"\x0fExportVariables\x12+\n" +
	"\x04name\x18\x01 \x01(\tB\x17\xbaH\x14\xc8\x01\x01r\x0f\x10\x012\v^[\\w\\-\\.]+$R\x04name\x12T\n" +
	"\vdefinitions\x18\x02 \x03(\v22.cerbos.policy.v1.ExportVariables.DefinitionsEntryR\vdefinitions\x1a>\n" +
	"\x10DefinitionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb6\x01\n" +
	"\tVariables\x121\n" +
	"\x06import\x18\x01 \x03(\tB\x19\xbaH\x16\x92\x01\x13\x18\x01\"\x0fr\r2\v^[\\w\\-\\.]+$R\x06import\x12<\n" +
	"\x05local\x18\x02 \x03(\v2&.cerbos.policy.v1.Variables.LocalEntryR\x05local\x1a8\n" +
	"\n" +
	"LocalEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"j\n" +
	"\tCondition\x12/\n" +
	"\x05match\x18\x01 \x01(\v2\x17.cerbos.policy.v1.MatchH\x00R\x05match\x12\x18\n" +
	"\x06script\x18\x02 \x01(\tH\x00R\x06scriptB\x12\n" +
	"\tcondition\x12\x05\xbaH\x02\b\x01\"\x90\x02\n" +
	"\x05Match\x124\n" +
	"\x03all\x18\x01 \x01(\v2 .cerbos.policy.v1.Match.ExprListH\x00R\x03all\x124\n" +
	"\x03any\x18\x02 \x01(\v2 .cerbos.policy.v1.Match.ExprListH\x00R\x03any\x126\n" +
	"\x04none\x18\x03 \x01(\v2 .cerbos.policy.v1.Match.ExprListH\x00R\x04none\x12\x14\n" +
	"\x04expr\x18\x04 \x01(\tH\x00R\x04expr\x1a@\n" +
	"\bExprList\x124\n" +
	"\x02of\x18\x01 \x03(\v2\x17.cerbos.policy.v1.MatchB\v\xbaH\b\xc8\x01\x01\x92\x01\x02\b\x01R\x02ofB\v\n" +
	"\x02op\x12\x05\xbaH\x02\b\x01\"\xae\x01\n" +
	"\x06Output\x12\x16\n" +
	"\x04expr\x18\x01 \x01(\tB\x02\x18\x01R\x04expr\x121\n" +
	"\x04when\x18\x02 \x01(\v2\x1d.cerbos.policy.v1.Output.WhenR\x04when\x1aY\n" +
	"\x04When\x12%\n" +
	"\x0erule_activated\x18\x01 \x01(\tR\rruleActivated\x12*\n" +
	"\x11condition_not_met\x18\x02 \x01(\tR\x0fconditionNotMet\"\xcd\x02\n" +
	"\aSchemas\x12K\n" +
	"\x10principal_schema\x18\x01 \x01(\v2 .cerbos.policy.v1.Schemas.SchemaR\x0fprincipalSchema\x12I\n" +
	"\x0fresource_schema\x18\x02 \x01(\v2 .cerbos.policy.v1.Schemas.SchemaR\x0eresourceSchema\x1a;\n" +
	"\n" +
	"IgnoreWhen\x12-\n" +
	"\aactions\x18\x01 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\aactions\x1am\n" +
	"\x06Schema\x12\x1c\n" +
	"\x03ref\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\x03ref\x12E\n" +
	"\vignore_when\x18\x02 \x01(\v2$.cerbos.policy.v1.Schemas.IgnoreWhenR\n" +
	"ignoreWhen\"\xd0\b\n" +
	"\vTestFixture\x1a\xbd\x03\n" +
	"\n" +
	"Principals\x12X\n" +
	"\n" +
	"principals\x18\x01 \x03(\v28.cerbos.policy.v1.TestFixture.Principals.PrincipalsEntryR\n" +
	"principals\x12\x1c\n" +
	"\vjson_schema\x18\x02 \x01(\tR\a$schema\x12h\n" +
	"\x10principal_groups\x18\x03 \x03(\v2=.cerbos.policy.v1.TestFixture.Principals.PrincipalGroupsEntryR\x0fprincipalGroups\x1aZ\n" +
	"\x0fPrincipalsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x121\n" +
	"\x05value\x18\x02 \x01(\v2\x1b.cerbos.engine.v1.PrincipalR\x05value:\x028\x01\x1aq\n" +
	"\x14PrincipalGroupsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12C\n" +
	"\x05value\x18\x02 \x01(\v2-.cerbos.policy.v1.TestFixtureGroup.PrincipalsR\x05value:\x028\x01\x1a\xb0\x03\n" +
	"\tResources\x12T\n" +
	"\tresources\x18\x01 \x03(\v26.cerbos.policy.v1.TestFixture.Resources.ResourcesEntryR\tresources\x12\x1c\n" +
	"\vjson_schema\x18\x02 \x01(\tR\a$schema\x12d\n" +
	"\x0fresource_groups\x18\x03 \x03(\v2;.cerbos.policy.v1.TestFixture.Resources.ResourceGroupsEntryR\x0eresourceGroups\x1aX\n" +
	"\x0eResourcesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x120\n" +
	"\x05value\x18\x02 \x01(\v2\x1a.cerbos.engine.v1.ResourceR\x05value:\x028\x01\x1ao\n" +
	"\x13ResourceGroupsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12B\n" +
	"\x05value\x18\x02 \x01(\v2,.cerbos.policy.v1.TestFixtureGroup.ResourcesR\x05value:\x028\x01\x1a\xcd\x01\n" +
	"\aAuxData\x12M\n" +
	"\baux_data\x18\x01 \x03(\v22.cerbos.policy.v1.TestFixture.AuxData.AuxDataEntryR\aauxData\x12\x1c\n" +
	"\vjson_schema\x18\x02 \x01(\tR\a$schema\x1aU\n" +
	"\fAuxDataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12/\n" +
	"\x05value\x18\x02 \x01(\v2\x19.cerbos.engine.v1.AuxDataR\x05value:\x028\x01\"\x95\x01\n" +
	"\x10TestFixtureGroup\x1aA\n" +
	"\n" +
	"Principals\x123\n" +
	"\n" +
	"principals\x18\x01 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\n" +
	"principals\x1a>\n" +
	"\tResources\x121\n" +
	"\tresources\x18\x01 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\tresources\"\xbd\x02\n" +
	"\vTestOptions\x12,\n" +
	"\x03now\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x03now\x120\n" +
	"\x14lenient_scope_search\x18\x02 \x01(\bR\x12lenientScopeSearch\x12D\n" +
	"\aglobals\x18\x03 \x03(\v2*.cerbos.policy.v1.TestOptions.GlobalsEntryR\aglobals\x124\n" +
	"\x16default_policy_version\x18\x04 \x01(\tR\x14defaultPolicyVersion\x1aR\n" +
	"\fGlobalsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x05value:\x028\x01\"\x9d\t\n" +
	"\tTestSuite\x12\x1e\n" +
	"\x04name\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\x04name\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x12\n" +
	"\x04skip\x18\x03 \x01(\bR\x04skip\x12\x1f\n" +
	"\vskip_reason\x18\x04 \x01(\tR\n" +
	"skipReason\x12>\n" +
	"\x05tests\x18\x05 \x03(\v2\x1b.cerbos.policy.v1.TestTableB\v\xbaH\b\xc8\x01\x01\x92\x01\x02\b\x01R\x05tests\x12K\n" +
	"\n" +
	"principals\x18\x06 \x03(\v2+.cerbos.policy.v1.TestSuite.PrincipalsEntryR\n" +
	"principals\x12H\n" +
	"\tresources\x18\a \x03(\v2*.cerbos.policy.v1.TestSuite.ResourcesEntryR\tresources\x12C\n" +
	"\baux_data\x18\b \x03(\v2(.cerbos.policy.v1.TestSuite.AuxDataEntryR\aauxData\x127\n" +
	"\aoptions\x18\t \x01(\v2\x1d.cerbos.policy.v1.TestOptionsR\aoptions\x12\x1c\n" +
	"\vjson_schema\x18\n" +
	" \x01(\tR\a$schema\x12[\n" +
	"\x10principal_groups\x18\v \x03(\v20.cerbos.policy.v1.TestSuite.PrincipalGroupsEntryR\x0fprincipalGroups\x12X\n" +
	"\x0fresource_groups\x18\f \x03(\v2/.cerbos.policy.v1.TestSuite.ResourceGroupsEntryR\x0eresourceGroups\x1aZ\n" +
	"\x0fPrincipalsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x121\n" +
	"\x05value\x18\x02 \x01(\v2\x1b.cerbos.engine.v1.PrincipalR\x05value:\x028\x01\x1aX\n" +
	"\x0eResourcesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x120\n" +
	"\x05value\x18\x02 \x01(\v2\x1a.cerbos.engine.v1.ResourceR\x05value:\x028\x01\x1aU\n" +
	"\fAuxDataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12/\n" +
	"\x05value\x18\x02 \x01(\v2\x19.cerbos.engine.v1.AuxDataR\x05value:\x028\x01\x1aq\n" +
	"\x14PrincipalGroupsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12C\n" +
	"\x05value\x18\x02 \x01(\v2-.cerbos.policy.v1.TestFixtureGroup.PrincipalsR\x05value:\x028\x01\x1ao\n" +
	"\x13ResourceGroupsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12B\n" +
	"\x05value\x18\x02 \x01(\v2,.cerbos.policy.v1.TestFixtureGroup.ResourcesR\x05value:\x028\x01\"\x99\x11\n" +
	"\tTestTable\x12\x1e\n" +
	"\x04name\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\x04name\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x12\n" +
	"\x04skip\x18\x03 \x01(\bR\x04skip\x12\x1f\n" +
	"\vskip_reason\x18\x04 \x01(\tR\n" +
	"skipReason\x12?\n" +
	"\x05input\x18\x05 \x01(\v2!.cerbos.policy.v1.TestTable.InputB\x06\xbaH\x03\xc8\x01\x01R\x05input\x12P\n" +
	"\bexpected\x18\x06 \x03(\v2'.cerbos.policy.v1.TestTable.ExpectationB\v\xbaH\b\xc8\x01\x01\x92\x01\x02\b\x01R\bexpected\x127\n" +
	"\aoptions\x18\a \x01(\v2\x1d.cerbos.policy.v1.TestOptionsR\aoptions\x1a\xa7\x04\n" +
	"\x05Input\x12.\n" +
	"\n" +
	"principals\x18\x01 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\n" +
	"principals\x12,\n" +
	"\tresources\x18\x02 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\tresources\x12-\n" +
	"\aactions\x18\x03 \x03(\tB\x13\xbaH\x10\xc8\x01\x01\x92\x01\n" +
	"\b\x01\x18\x01\"\x04r\x02\x10\x01R\aactions\x12\x19\n" +
	"\baux_data\x18\x04 \x01(\tR\aauxData\x129\n" +
	"\x10principal_groups\x18\x05 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\x0fprincipalGroups\x127\n" +
	"\x0fresource_groups\x18\x06 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\x0eresourceGroups:\x81\x02\xbaH\xfd\x01\x1a\x7f\n" +
	"\x10input.principals\x12-principals or principalGroups must be present\x1a<size(this.principals) > 0 || size(this.principal_groups) > 0\x1az\n" +
	"\x0finput.resources\x12+resources or resourceGroups must be present\x1a:size(this.resources) > 0 || size(this.resource_groups) > 0\x1a\x80\x01\n" +
	"\x12OutputExpectations\x12\"\n" +
	"\x06action\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\x06action\x12F\n" +
	"\bexpected\x18\x02 \x03(\v2\x1d.cerbos.engine.v1.OutputEntryB\v\xbaH\b\xc8\x01\x01\x92\x01\x02\b\x01R\bexpected\x1a\x9b\t\n" +
	"\vExpectation\x12\x1c\n" +
	"\tprincipal\x18\x01 \x01(\tR\tprincipal\x12\x1a\n" +
	"\bresource\x18\x02 \x01(\tR\bresource\x12j\n" +
	"\aactions\x18\x03 \x03(\v24.cerbos.policy.v1.TestTable.Expectation.ActionsEntryB\x1a\xbaH\x17\xc8\x01\x01\x9a\x01\x11\b\x01\"\x04r\x02\x10\x01*\a\x82\x01\x04\x18\x01\x18\x02R\aactions\x12H\n" +
	"\aoutputs\x18\x04 \x03(\v2..cerbos.policy.v1.TestTable.OutputExpectationsR\aoutputs\x12.\n" +
	"\n" +
	"principals\x18\x05 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\n" +
	"principals\x12,\n" +
	"\tresources\x18\x06 \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\tresources\x129\n" +
	"\x10principal_groups\x18\a \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\x0fprincipalGroups\x127\n" +
	"\x0fresource_groups\x18\b \x03(\tB\x0e\xbaH\v\x92\x01\b\x18\x01\"\x04r\x02\x10\x01R\x0eresourceGroups\x1aT\n" +
	"\fActionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12.\n" +
	"\x05value\x18\x02 \x01(\x0e2\x18.cerbos.effect.v1.EffectR\x05value:\x028\x01:\xf3\x04\xbaH\xef\x04\x1a\xa9\x01\n" +
	"\x16expectation.principals\x129principal, principals, or principalGroups must be present\x1aTthis.principal != '' || size(this.principals) > 0 || size(this.principal_groups) > 0\x1a\x8f\x01\n" +
	"%expectation.principal_nand_principals\x120principal and principals may not both be present\x1a4!(this.principal != '' && size(this.principals) > 0)\x1a\xa2\x01\n" +
	"\x15expectation.resources\x126resource, resources, or resourceGroups must be present\x1aQthis.resource != '' || size(this.resources) > 0 || size(this.resource_groups) > 0\x1a\x89\x01\n" +
	"#expectation.resource_nand_resources\x12.resource and resources may not both be present\x1a2!(this.resource != '' && size(this.resources) > 0)\"\xda\a\n" +
	"\x04Test\x12;\n" +
	"\x04name\x18\x01 \x01(\v2\x1f.cerbos.policy.v1.Test.TestNameB\x06\xbaH\x03\xc8\x01\x01R\x04name\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x12\n" +
	"\x04skip\x18\x03 \x01(\bR\x04skip\x12\x1f\n" +
	"\vskip_reason\x18\x04 \x01(\tR\n" +
	"skipReason\x12:\n" +
	"\x05input\x18\x05 \x01(\v2\x1c.cerbos.engine.v1.CheckInputB\x06\xbaH\x03\xc8\x01\x01R\x05input\x12\\\n" +
	"\bexpected\x18\x06 \x03(\v2$.cerbos.policy.v1.Test.ExpectedEntryB\x1a\xbaH\x17\xc8\x01\x01\x9a\x01\x11\b\x01\"\x04r\x02\x10\x01*\a\x82\x01\x04\x18\x01\x18\x02R\bexpected\x127\n" +
	"\aoptions\x18\a \x01(\v2\x1d.cerbos.policy.v1.TestOptionsR\aoptions\x12V\n" +
	"\x10expected_outputs\x18\b \x03(\v2+.cerbos.policy.v1.Test.ExpectedOutputsEntryR\x0fexpectedOutputs\x1a\x9e\x01\n" +
	"\bTestName\x122\n" +
	"\x0ftest_table_name\x18\x01 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\rtestTableName\x12/\n" +
	"\rprincipal_key\x18\x02 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\fprincipalKey\x12-\n" +
	"\fresource_key\x18\x03 \x01(\tB\n" +
	"\xbaH\a\xc8\x01\x01r\x02\x10\x01R\vresourceKey\x1a\xb0\x01\n" +
	"\rOutputEntries\x12K\n" +
	"\aentries\x18\x01 \x03(\v21.cerbos.policy.v1.Test.OutputEntries.EntriesEntryR\aentries\x1aR\n" +
	"\fEntriesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x05value:\x028\x01\x1aU\n" +
	"\rExpectedEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12.\n" +
	"\x05value\x18\x02 \x01(\x0e2\x18.cerbos.effect.v1.EffectR\x05value:\x028\x01\x1ah\n" +
	"\x14ExpectedOutputsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12:\n" +
	"\x05value\x18\x02 \x01(\v2$.cerbos.policy.v1.Test.OutputEntriesR\x05value:\x028\x01\"\xad\x12\n" +
	"\vTestResults\x12;\n" +
	"\x06suites\x18\x01 \x03(\v2#.cerbos.policy.v1.TestResults.SuiteR\x06suites\x12?\n" +
	"\asummary\x18\x02 \x01(\v2%.cerbos.policy.v1.TestResults.SummaryR\asummary\x1a[\n" +
	"\x05Tally\x12<\n" +
	"\x06result\x18\x01 \x01(\x0e2$.cerbos.policy.v1.TestResults.ResultR\x06result\x12\x14\n" +
	"\x05count\x18\x02 \x01(\rR\x05count\x1a\xc1\x01\n" +
	"\aSummary\x12K\n" +
	"\x0eoverall_result\x18\x01 \x01(\x0e2$.cerbos.policy.v1.TestResults.ResultR\roverallResult\x12\x1f\n" +
	"\vtests_count\x18\x02 \x01(\rR\n" +
	"testsCount\x12H\n" +
	"\rresult_counts\x18\x03 \x03(\v2#.cerbos.policy.v1.TestResults.TallyR\fresultCounts\x1a\xdd\x02\n" +
	"\x05Suite\x12\x12\n" +
	"\x04file\x18\x01 \x01(\tR\x04file\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12K\n" +
	"\n" +
	"principals\x18\x03 \x03(\v2'.cerbos.policy.v1.TestResults.PrincipalB\x02\x18\x01R\n" +
	"principals\x12?\n" +
	"\asummary\x18\x04 \x01(\v2%.cerbos.policy.v1.TestResults.SummaryR\asummary\x12\x14\n" +
	"\x05error\x18\x05 \x01(\tR\x05error\x12E\n" +
	"\n" +
	"test_cases\x18\x06 \x03(\v2&.cerbos.policy.v1.TestResults.TestCaseR\ttestCases\x12 \n" +
	"\vdescription\x18\a \x01(\tR\vdescription\x12\x1f\n" +
	"\vskip_reason\x18\b \x01(\tR\n" +
	"skipReason\x1ag\n" +
	"\bTestCase\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12G\n" +
	"\n" +
	"principals\x18\x02 \x03(\v2'.cerbos.policy.v1.TestResults.PrincipalR\n" +
	"principals\x1ae\n" +
	"\tPrincipal\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12D\n" +
	"\tresources\x18\x02 \x03(\v2&.cerbos.policy.v1.TestResults.ResourceR\tresources\x1a^\n" +
	"\bResource\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12>\n" +
	"\aactions\x18\x02 \x03(\v2$.cerbos.policy.v1.TestResults.ActionR\aactions\x1a]\n" +
	"\x06Action\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12?\n" +
	"\adetails\x18\x02 \x01(\v2%.cerbos.policy.v1.TestResults.DetailsR\adetails\x1a\xcf\x02\n" +
	"\aDetails\x12<\n" +
	"\x06result\x18\x01 \x01(\x0e2$.cerbos.policy.v1.TestResults.ResultR\x06result\x12A\n" +
	"\afailure\x18\x02 \x01(\v2%.cerbos.policy.v1.TestResults.FailureH\x00R\afailure\x12\x16\n" +
	"\x05error\x18\x03 \x01(\tH\x00R\x05error\x12A\n" +
	"\asuccess\x18\x05 \x01(\v2%.cerbos.policy.v1.TestResults.SuccessH\x00R\asuccess\x12!\n" +
	"\vskip_reason\x18\x06 \x01(\tH\x00R\n" +
	"skipReason\x12:\n" +
	"\fengine_trace\x18\x04 \x03(\v2\x17.cerbos.engine.v1.TraceR\vengineTraceB\t\n" +
	"\aoutcome\x1a\x9c\x03\n" +
	"\rOutputFailure\x12\x10\n" +
	"\x03src\x18\x01 \x01(\tR\x03src\x12]\n" +
	"\n" +
	"mismatched\x18\x02 \x01(\v2;.cerbos.policy.v1.TestResults.OutputFailure.MismatchedValueH\x00R\n" +
	"mismatched\x12T\n" +
	"\amissing\x18\x03 \x01(\v28.cerbos.policy.v1.TestResults.OutputFailure.MissingValueH\x00R\amissing\x1au\n" +
	"\x0fMismatchedValue\x122\n" +
	"\bexpected\x18\x01 \x01(\v2\x16.google.protobuf.ValueR\bexpected\x12.\n" +
	"\x06actual\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x06actual\x1aB\n" +
	"\fMissingValue\x122\n" +
	"\bexpected\x18\x01 \x01(\v2\x16.google.protobuf.ValueR\bexpectedB\t\n" +
	"\aoutcome\x1a\xb8\x01\n" +
	"\aFailure\x124\n" +
	"\bexpected\x18\x01 \x01(\x0e2\x18.cerbos.effect.v1.EffectR\bexpected\x120\n" +
	"\x06actual\x18\x02 \x01(\x0e2\x18.cerbos.effect.v1.EffectR\x06actual\x12E\n" +
	"\aoutputs\x18\x03 \x03(\v2+.cerbos.policy.v1.TestResults.OutputFailureR\aoutputs\x1at\n" +
	"\aSuccess\x120\n" +
	"\x06effect\x18\x01 \x01(\x0e2\x18.cerbos.effect.v1.EffectR\x06effect\x127\n" +
	"\aoutputs\x18\x02 \x03(\v2\x1d.cerbos.engine.v1.OutputEntryR\aoutputs\"n\n" +
	"\x06Result\x12\x16\n" +
	"\x12RESULT_UNSPECIFIED\x10\x00\x12\x12\n" +
	"\x0eRESULT_SKIPPED\x10\x01\x12\x11\n" +
	"\rRESULT_PASSED\x10\x02\x12\x11\n" +
	"\rRESULT_FAILED\x10\x03\x12\x12\n" +
	"\x0eRESULT_ERRORED\x10\x04*\xa7\x01\n" +
	"\x04Kind\x12\x14\n" +
	"\x10KIND_UNSPECIFIED\x10\x00\x12\x16\n" +
	"\x12KIND_DERIVED_ROLES\x10\x01\x12\x19\n" +
	"\x15KIND_EXPORT_VARIABLES\x10\x02\x12\x12\n" +
	"\x0eKIND_PRINCIPAL\x10\x03\x12\x11\n" +
	"\rKIND_RESOURCE\x10\x04\x12\x14\n" +
	"\x10KIND_ROLE_POLICY\x10\x05\x12\x19\n" +
	"\x15KIND_EXPORT_CONSTANTS\x10\x06*\x97\x01\n" +
	"\x10ScopePermissions\x12!\n" +
	"\x1dSCOPE_PERMISSIONS_UNSPECIFIED\x10\x00\x12%\n" +
	"!SCOPE_PERMISSIONS_OVERRIDE_PARENT\x10\x01\x129\n" +
	"5SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS\x10\x02Bo\n" +
	"\x18dev.cerbos.api.v1.policyZ<github.com/cerbos/cerbos/api/genpb/cerbos/policy/v1;policyv1\xaa\x02\x14Cerbos.Api.V1.Policyb\x06proto3"

var (
	file_cerbos_policy_v1_policy_proto_rawDescOnce sync.Once
	file_cerbos_policy_v1_policy_proto_rawDescData []byte
)

func file_cerbos_policy_v1_policy_proto_rawDescGZIP() []byte {
	file_cerbos_policy_v1_policy_proto_rawDescOnce.Do(func() {
		file_cerbos_policy_v1_policy_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_cerbos_policy_v1_policy_proto_rawDesc), len(file_cerbos_policy_v1_policy_proto_rawDesc)))
	})
	return file_cerbos_policy_v1_policy_proto_rawDescData
}

var file_cerbos_policy_v1_policy_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_cerbos_policy_v1_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 76)
var file_cerbos_policy_v1_policy_proto_goTypes = []any{
	(Kind)(0),                            // 0: cerbos.policy.v1.Kind
	(ScopePermissions)(0),                // 1: cerbos.policy.v1.ScopePermissions
	(TestResults_Result)(0),              // 2: cerbos.policy.v1.TestResults.Result
	(*Policy)(nil),                       // 3: cerbos.policy.v1.Policy
	(*SourceAttributes)(nil),             // 4: cerbos.policy.v1.SourceAttributes
	(*Metadata)(nil),                     // 5: cerbos.policy.v1.Metadata
	(*ResourcePolicy)(nil),               // 6: cerbos.policy.v1.ResourcePolicy
	(*ResourceRule)(nil),                 // 7: cerbos.policy.v1.ResourceRule
	(*RolePolicy)(nil),                   // 8: cerbos.policy.v1.RolePolicy
	(*RoleRule)(nil),                     // 9: cerbos.policy.v1.RoleRule
	(*PrincipalPolicy)(nil),              // 10: cerbos.policy.v1.PrincipalPolicy
	(*PrincipalRule)(nil),                // 11: cerbos.policy.v1.PrincipalRule
	(*DerivedRoles)(nil),                 // 12: cerbos.policy.v1.DerivedRoles
	(*RoleDef)(nil),                      // 13: cerbos.policy.v1.RoleDef
	(*ExportConstants)(nil),              // 14: cerbos.policy.v1.ExportConstants
	(*Constants)(nil),                    // 15: cerbos.policy.v1.Constants
	(*ExportVariables)(nil),              // 16: cerbos.policy.v1.ExportVariables
	(*Variables)(nil),                    // 17: cerbos.policy.v1.Variables
	(*Condition)(nil),                    // 18: cerbos.policy.v1.Condition
	(*Match)(nil),                        // 19: cerbos.policy.v1.Match
	(*Output)(nil),                       // 20: cerbos.policy.v1.Output
	(*Schemas)(nil),                      // 21: cerbos.policy.v1.Schemas
	(*TestFixture)(nil),                  // 22: cerbos.policy.v1.TestFixture
	(*TestFixtureGroup)(nil),             // 23: cerbos.policy.v1.TestFixtureGroup
	(*TestOptions)(nil),                  // 24: cerbos.policy.v1.TestOptions
	(*TestSuite)(nil),                    // 25: cerbos.policy.v1.TestSuite
	(*TestTable)(nil),                    // 26: cerbos.policy.v1.TestTable
	(*Test)(nil),                         // 27: cerbos.policy.v1.Test
	(*TestResults)(nil),                  // 28: cerbos.policy.v1.TestResults
	nil,                                  // 29: cerbos.policy.v1.Policy.VariablesEntry
	nil,                                  // 30: cerbos.policy.v1.SourceAttributes.AttributesEntry
	nil,                                  // 31: cerbos.policy.v1.Metadata.AnnotationsEntry
	(*PrincipalRule_Action)(nil),         // 32: cerbos.policy.v1.PrincipalRule.Action
	nil,                                  // 33: cerbos.policy.v1.ExportConstants.DefinitionsEntry
	nil,                                  // 34: cerbos.policy.v1.Constants.LocalEntry
	nil,                                  // 35: cerbos.policy.v1.ExportVariables.DefinitionsEntry
	nil,                                  // 36: cerbos.policy.v1.Variables.LocalEntry
	(*Match_ExprList)(nil),               // 37: cerbos.policy.v1.Match.ExprList
	(*Output_When)(nil),                  // 38: cerbos.policy.v1.Output.When
	(*Schemas_IgnoreWhen)(nil),           // 39: cerbos.policy.v1.Schemas.IgnoreWhen
	(*Schemas_Schema)(nil),               // 40: cerbos.policy.v1.Schemas.Schema
	(*TestFixture_Principals)(nil),       // 41: cerbos.policy.v1.TestFixture.Principals
	(*TestFixture_Resources)(nil),        // 42: cerbos.policy.v1.TestFixture.Resources
	(*TestFixture_AuxData)(nil),          // 43: cerbos.policy.v1.TestFixture.AuxData
	nil,                                  // 44: cerbos.policy.v1.TestFixture.Principals.PrincipalsEntry
	nil,                                  // 45: cerbos.policy.v1.TestFixture.Principals.PrincipalGroupsEntry
	nil,                                  // 46: cerbos.policy.v1.TestFixture.Resources.ResourcesEntry
	nil,                                  // 47: cerbos.policy.v1.TestFixture.Resources.ResourceGroupsEntry
	nil,                                  // 48: cerbos.policy.v1.TestFixture.AuxData.AuxDataEntry
	(*TestFixtureGroup_Principals)(nil),  // 49: cerbos.policy.v1.TestFixtureGroup.Principals
	(*TestFixtureGroup_Resources)(nil),   // 50: cerbos.policy.v1.TestFixtureGroup.Resources
	nil,                                  // 51: cerbos.policy.v1.TestOptions.GlobalsEntry
	nil,                                  // 52: cerbos.policy.v1.TestSuite.PrincipalsEntry
	nil,                                  // 53: cerbos.policy.v1.TestSuite.ResourcesEntry
	nil,                                  // 54: cerbos.policy.v1.TestSuite.AuxDataEntry
	nil,                                  // 55: cerbos.policy.v1.TestSuite.PrincipalGroupsEntry
	nil,                                  // 56: cerbos.policy.v1.TestSuite.ResourceGroupsEntry
	(*TestTable_Input)(nil),              // 57: cerbos.policy.v1.TestTable.Input
	(*TestTable_OutputExpectations)(nil), // 58: cerbos.policy.v1.TestTable.OutputExpectations
	(*TestTable_Expectation)(nil),        // 59: cerbos.policy.v1.TestTable.Expectation
	nil,                                  // 60: cerbos.policy.v1.TestTable.Expectation.ActionsEntry
	(*Test_TestName)(nil),                // 61: cerbos.policy.v1.Test.TestName
	(*Test_OutputEntries)(nil),           // 62: cerbos.policy.v1.Test.OutputEntries
	nil,                                  // 63: cerbos.policy.v1.Test.ExpectedEntry
	nil,                                  // 64: cerbos.policy.v1.Test.ExpectedOutputsEntry
	nil,                                  // 65: cerbos.policy.v1.Test.OutputEntries.EntriesEntry
	(*TestResults_Tally)(nil),            // 66: cerbos.policy.v1.TestResults.Tally
	(*TestResults_Summary)(nil),          // 67: cerbos.policy.v1.TestResults.Summary
	(*TestResults_Suite)(nil),            // 68: cerbos.policy.v1.TestResults.Suite
	(*TestResults_TestCase)(nil),         // 69: cerbos.policy.v1.TestResults.TestCase
	(*TestResults_Principal)(nil),        // 70: cerbos.policy.v1.TestResults.Principal
	(*TestResults_Resource)(nil),         // 71: cerbos.policy.v1.TestResults.Resource
	(*TestResults_Action)(nil),           // 72: cerbos.policy.v1.TestResults.Action
	(*TestResults_Details)(nil),          // 73: cerbos.policy.v1.TestResults.Details
	(*TestResults_OutputFailure)(nil),    // 74: cerbos.policy.v1.TestResults.OutputFailure
	(*TestResults_Failure)(nil),          // 75: cerbos.policy.v1.TestResults.Failure
	(*TestResults_Success)(nil),          // 76: cerbos.policy.v1.TestResults.Success
	(*TestResults_OutputFailure_MismatchedValue)(nil), // 77: cerbos.policy.v1.TestResults.OutputFailure.MismatchedValue
	(*TestResults_OutputFailure_MissingValue)(nil),    // 78: cerbos.policy.v1.TestResults.OutputFailure.MissingValue
	(*wrapperspb.UInt64Value)(nil),                    // 79: google.protobuf.UInt64Value
	(v1.Effect)(0),                                    // 80: cerbos.effect.v1.Effect
	(*timestamppb.Timestamp)(nil),                     // 81: google.protobuf.Timestamp
	(*v11.CheckInput)(nil),                            // 82: cerbos.engine.v1.CheckInput
	(*structpb.Value)(nil),                            // 83: google.protobuf.Value
	(*v11.Principal)(nil),                             // 84: cerbos.engine.v1.Principal
	(*v11.Resource)(nil),                              // 85: cerbos.engine.v1.Resource
	(*v11.AuxData)(nil),                               // 86: cerbos.engine.v1.AuxData
	(*v11.OutputEntry)(nil),                           // 87: cerbos.engine.v1.OutputEntry
	(*v11.Trace)(nil),                                 // 88: cerbos.engine.v1.Trace
}
var file_cerbos_policy_v1_policy_proto_depIdxs = []int32{
	5,   // 0: cerbos.policy.v1.Policy.metadata:type_name -> cerbos.policy.v1.Metadata
	6,   // 1: cerbos.policy.v1.Policy.resource_policy:type_name -> cerbos.policy.v1.ResourcePolicy
	10,  // 2: cerbos.policy.v1.Policy.principal_policy:type_name -> cerbos.policy.v1.PrincipalPolicy
	12,  // 3: cerbos.policy.v1.Policy.derived_roles:type_name -> cerbos.policy.v1.DerivedRoles
	16,  // 4: cerbos.policy.v1.Policy.export_variables:type_name -> cerbos.policy.v1.ExportVariables
	8,   // 5: cerbos.policy.v1.Policy.role_policy:type_name -> cerbos.policy.v1.RolePolicy
	14,  // 6: cerbos.policy.v1.Policy.export_constants:type_name -> cerbos.policy.v1.ExportConstants
	29,  // 7: cerbos.policy.v1.Policy.variables:type_name -> cerbos.policy.v1.Policy.VariablesEntry
	30,  // 8: cerbos.policy.v1.SourceAttributes.attributes:type_name -> cerbos.policy.v1.SourceAttributes.AttributesEntry
	31,  // 9: cerbos.policy.v1.Metadata.annotations:type_name -> cerbos.policy.v1.Metadata.AnnotationsEntry
	79,  // 10: cerbos.policy.v1.Metadata.hash:type_name -> google.protobuf.UInt64Value
	4,   // 11: cerbos.policy.v1.Metadata.source_attributes:type_name -> cerbos.policy.v1.SourceAttributes
	7,   // 12: cerbos.policy.v1.ResourcePolicy.rules:type_name -> cerbos.policy.v1.ResourceRule
	21,  // 13: cerbos.policy.v1.ResourcePolicy.schemas:type_name -> cerbos.policy.v1.Schemas
	17,  // 14: cerbos.policy.v1.ResourcePolicy.variables:type_name -> cerbos.policy.v1.Variables
	1,   // 15: cerbos.policy.v1.ResourcePolicy.scope_permissions:type_name -> cerbos.policy.v1.ScopePermissions
	15,  // 16: cerbos.policy.v1.ResourcePolicy.constants:type_name -> cerbos.policy.v1.Constants
	18,  // 17: cerbos.policy.v1.ResourceRule.condition:type_name -> cerbos.policy.v1.Condition
	80,  // 18: cerbos.policy.v1.ResourceRule.effect:type_name -> cerbos.effect.v1.Effect
	20,  // 19: cerbos.policy.v1.ResourceRule.output:type_name -> cerbos.policy.v1.Output
	9,   // 20: cerbos.policy.v1.RolePolicy.rules:type_name -> cerbos.policy.v1.RoleRule
	1,   // 21: cerbos.policy.v1.RolePolicy.scope_permissions:type_name -> cerbos.policy.v1.ScopePermissions
	18,  // 22: cerbos.policy.v1.RoleRule.condition:type_name -> cerbos.policy.v1.Condition
	11,  // 23: cerbos.policy.v1.PrincipalPolicy.rules:type_name -> cerbos.policy.v1.PrincipalRule
	17,  // 24: cerbos.policy.v1.PrincipalPolicy.variables:type_name -> cerbos.policy.v1.Variables
	1,   // 25: cerbos.policy.v1.PrincipalPolicy.scope_permissions:type_name -> cerbos.policy.v1.ScopePermissions
	15,  // 26: cerbos.policy.v1.PrincipalPolicy.constants:type_name -> cerbos.policy.v1.Constants
	32,  // 27: cerbos.policy.v1.PrincipalRule.actions:type_name -> cerbos.policy.v1.PrincipalRule.Action
	13,  // 28: cerbos.policy.v1.DerivedRoles.definitions:type_name -> cerbos.policy.v1.RoleDef
	17,  // 29: cerbos.policy.v1.DerivedRoles.variables:type_name -> cerbos.policy.v1.Variables
	15,  // 30: cerbos.policy.v1.DerivedRoles.constants:type_name -> cerbos.policy.v1.Constants
	18,  // 31: cerbos.policy.v1.RoleDef.condition:type_name -> cerbos.policy.v1.Condition
	33,  // 32: cerbos.policy.v1.ExportConstants.definitions:type_name -> cerbos.policy.v1.ExportConstants.DefinitionsEntry
	34,  // 33: cerbos.policy.v1.Constants.local:type_name -> cerbos.policy.v1.Constants.LocalEntry
	35,  // 34: cerbos.policy.v1.ExportVariables.definitions:type_name -> cerbos.policy.v1.ExportVariables.DefinitionsEntry
	36,  // 35: cerbos.policy.v1.Variables.local:type_name -> cerbos.policy.v1.Variables.LocalEntry
	19,  // 36: cerbos.policy.v1.Condition.match:type_name -> cerbos.policy.v1.Match
	37,  // 37: cerbos.policy.v1.Match.all:type_name -> cerbos.policy.v1.Match.ExprList
	37,  // 38: cerbos.policy.v1.Match.any:type_name -> cerbos.policy.v1.Match.ExprList
	37,  // 39: cerbos.policy.v1.Match.none:type_name -> cerbos.policy.v1.Match.ExprList
	38,  // 40: cerbos.policy.v1.Output.when:type_name -> cerbos.policy.v1.Output.When
	40,  // 41: cerbos.policy.v1.Schemas.principal_schema:type_name -> cerbos.policy.v1.Schemas.Schema
	40,  // 42: cerbos.policy.v1.Schemas.resource_schema:type_name -> cerbos.policy.v1.Schemas.Schema
	81,  // 43: cerbos.policy.v1.TestOptions.now:type_name -> google.protobuf.Timestamp
	51,  // 44: cerbos.policy.v1.TestOptions.globals:type_name -> cerbos.policy.v1.TestOptions.GlobalsEntry
	26,  // 45: cerbos.policy.v1.TestSuite.tests:type_name -> cerbos.policy.v1.TestTable
	52,  // 46: cerbos.policy.v1.TestSuite.principals:type_name -> cerbos.policy.v1.TestSuite.PrincipalsEntry
	53,  // 47: cerbos.policy.v1.TestSuite.resources:type_name -> cerbos.policy.v1.TestSuite.ResourcesEntry
	54,  // 48: cerbos.policy.v1.TestSuite.aux_data:type_name -> cerbos.policy.v1.TestSuite.AuxDataEntry
	24,  // 49: cerbos.policy.v1.TestSuite.options:type_name -> cerbos.policy.v1.TestOptions
	55,  // 50: cerbos.policy.v1.TestSuite.principal_groups:type_name -> cerbos.policy.v1.TestSuite.PrincipalGroupsEntry
	56,  // 51: cerbos.policy.v1.TestSuite.resource_groups:type_name -> cerbos.policy.v1.TestSuite.ResourceGroupsEntry
	57,  // 52: cerbos.policy.v1.TestTable.input:type_name -> cerbos.policy.v1.TestTable.Input
	59,  // 53: cerbos.policy.v1.TestTable.expected:type_name -> cerbos.policy.v1.TestTable.Expectation
	24,  // 54: cerbos.policy.v1.TestTable.options:type_name -> cerbos.policy.v1.TestOptions
	61,  // 55: cerbos.policy.v1.Test.name:type_name -> cerbos.policy.v1.Test.TestName
	82,  // 56: cerbos.policy.v1.Test.input:type_name -> cerbos.engine.v1.CheckInput
	63,  // 57: cerbos.policy.v1.Test.expected:type_name -> cerbos.policy.v1.Test.ExpectedEntry
	24,  // 58: cerbos.policy.v1.Test.options:type_name -> cerbos.policy.v1.TestOptions
	64,  // 59: cerbos.policy.v1.Test.expected_outputs:type_name -> cerbos.policy.v1.Test.ExpectedOutputsEntry
	68,  // 60: cerbos.policy.v1.TestResults.suites:type_name -> cerbos.policy.v1.TestResults.Suite
	67,  // 61: cerbos.policy.v1.TestResults.summary:type_name -> cerbos.policy.v1.TestResults.Summary
	83,  // 62: cerbos.policy.v1.SourceAttributes.AttributesEntry.value:type_name -> google.protobuf.Value
	18,  // 63: cerbos.policy.v1.PrincipalRule.Action.condition:type_name -> cerbos.policy.v1.Condition
	80,  // 64: cerbos.policy.v1.PrincipalRule.Action.effect:type_name -> cerbos.effect.v1.Effect
	20,  // 65: cerbos.policy.v1.PrincipalRule.Action.output:type_name -> cerbos.policy.v1.Output
	83,  // 66: cerbos.policy.v1.ExportConstants.DefinitionsEntry.value:type_name -> google.protobuf.Value
	83,  // 67: cerbos.policy.v1.Constants.LocalEntry.value:type_name -> google.protobuf.Value
	19,  // 68: cerbos.policy.v1.Match.ExprList.of:type_name -> cerbos.policy.v1.Match
	39,  // 69: cerbos.policy.v1.Schemas.Schema.ignore_when:type_name -> cerbos.policy.v1.Schemas.IgnoreWhen
	44,  // 70: cerbos.policy.v1.TestFixture.Principals.principals:type_name -> cerbos.policy.v1.TestFixture.Principals.PrincipalsEntry
	45,  // 71: cerbos.policy.v1.TestFixture.Principals.principal_groups:type_name -> cerbos.policy.v1.TestFixture.Principals.PrincipalGroupsEntry
	46,  // 72: cerbos.policy.v1.TestFixture.Resources.resources:type_name -> cerbos.policy.v1.TestFixture.Resources.ResourcesEntry
	47,  // 73: cerbos.policy.v1.TestFixture.Resources.resource_groups:type_name -> cerbos.policy.v1.TestFixture.Resources.ResourceGroupsEntry
	48,  // 74: cerbos.policy.v1.TestFixture.AuxData.aux_data:type_name -> cerbos.policy.v1.TestFixture.AuxData.AuxDataEntry
	84,  // 75: cerbos.policy.v1.TestFixture.Principals.PrincipalsEntry.value:type_name -> cerbos.engine.v1.Principal
	49,  // 76: cerbos.policy.v1.TestFixture.Principals.PrincipalGroupsEntry.value:type_name -> cerbos.policy.v1.TestFixtureGroup.Principals
	85,  // 77: cerbos.policy.v1.TestFixture.Resources.ResourcesEntry.value:type_name -> cerbos.engine.v1.Resource
	50,  // 78: cerbos.policy.v1.TestFixture.Resources.ResourceGroupsEntry.value:type_name -> cerbos.policy.v1.TestFixtureGroup.Resources
	86,  // 79: cerbos.policy.v1.TestFixture.AuxData.AuxDataEntry.value:type_name -> cerbos.engine.v1.AuxData
	83,  // 80: cerbos.policy.v1.TestOptions.GlobalsEntry.value:type_name -> google.protobuf.Value
	84,  // 81: cerbos.policy.v1.TestSuite.PrincipalsEntry.value:type_name -> cerbos.engine.v1.Principal
	85,  // 82: cerbos.policy.v1.TestSuite.ResourcesEntry.value:type_name -> cerbos.engine.v1.Resource
	86,  // 83: cerbos.policy.v1.TestSuite.AuxDataEntry.value:type_name -> cerbos.engine.v1.AuxData
	49,  // 84: cerbos.policy.v1.TestSuite.PrincipalGroupsEntry.value:type_name -> cerbos.policy.v1.TestFixtureGroup.Principals
	50,  // 85: cerbos.policy.v1.TestSuite.ResourceGroupsEntry.value:type_name -> cerbos.policy.v1.TestFixtureGroup.Resources
	87,  // 86: cerbos.policy.v1.TestTable.OutputExpectations.expected:type_name -> cerbos.engine.v1.OutputEntry
	60,  // 87: cerbos.policy.v1.TestTable.Expectation.actions:type_name -> cerbos.policy.v1.TestTable.Expectation.ActionsEntry
	58,  // 88: cerbos.policy.v1.TestTable.Expectation.outputs:type_name -> cerbos.policy.v1.TestTable.OutputExpectations
	80,  // 89: cerbos.policy.v1.TestTable.Expectation.ActionsEntry.value:type_name -> cerbos.effect.v1.Effect
	65,  // 90: cerbos.policy.v1.Test.OutputEntries.entries:type_name -> cerbos.policy.v1.Test.OutputEntries.EntriesEntry
	80,  // 91: cerbos.policy.v1.Test.ExpectedEntry.value:type_name -> cerbos.effect.v1.Effect
	62,  // 92: cerbos.policy.v1.Test.ExpectedOutputsEntry.value:type_name -> cerbos.policy.v1.Test.OutputEntries
	83,  // 93: cerbos.policy.v1.Test.OutputEntries.EntriesEntry.value:type_name -> google.protobuf.Value
	2,   // 94: cerbos.policy.v1.TestResults.Tally.result:type_name -> cerbos.policy.v1.TestResults.Result
	2,   // 95: cerbos.policy.v1.TestResults.Summary.overall_result:type_name -> cerbos.policy.v1.TestResults.Result
	66,  // 96: cerbos.policy.v1.TestResults.Summary.result_counts:type_name -> cerbos.policy.v1.TestResults.Tally
	70,  // 97: cerbos.policy.v1.TestResults.Suite.principals:type_name -> cerbos.policy.v1.TestResults.Principal
	67,  // 98: cerbos.policy.v1.TestResults.Suite.summary:type_name -> cerbos.policy.v1.TestResults.Summary
	69,  // 99: cerbos.policy.v1.TestResults.Suite.test_cases:type_name -> cerbos.policy.v1.TestResults.TestCase
	70,  // 100: cerbos.policy.v1.TestResults.TestCase.principals:type_name -> cerbos.policy.v1.TestResults.Principal
	71,  // 101: cerbos.policy.v1.TestResults.Principal.resources:type_name -> cerbos.policy.v1.TestResults.Resource
	72,  // 102: cerbos.policy.v1.TestResults.Resource.actions:type_name -> cerbos.policy.v1.TestResults.Action
	73,  // 103: cerbos.policy.v1.TestResults.Action.details:type_name -> cerbos.policy.v1.TestResults.Details
	2,   // 104: cerbos.policy.v1.TestResults.Details.result:type_name -> cerbos.policy.v1.TestResults.Result
	75,  // 105: cerbos.policy.v1.TestResults.Details.failure:type_name -> cerbos.policy.v1.TestResults.Failure
	76,  // 106: cerbos.policy.v1.TestResults.Details.success:type_name -> cerbos.policy.v1.TestResults.Success
	88,  // 107: cerbos.policy.v1.TestResults.Details.engine_trace:type_name -> cerbos.engine.v1.Trace
	77,  // 108: cerbos.policy.v1.TestResults.OutputFailure.mismatched:type_name -> cerbos.policy.v1.TestResults.OutputFailure.MismatchedValue
	78,  // 109: cerbos.policy.v1.TestResults.OutputFailure.missing:type_name -> cerbos.policy.v1.TestResults.OutputFailure.MissingValue
	80,  // 110: cerbos.policy.v1.TestResults.Failure.expected:type_name -> cerbos.effect.v1.Effect
	80,  // 111: cerbos.policy.v1.TestResults.Failure.actual:type_name -> cerbos.effect.v1.Effect
	74,  // 112: cerbos.policy.v1.TestResults.Failure.outputs:type_name -> cerbos.policy.v1.TestResults.OutputFailure
	80,  // 113: cerbos.policy.v1.TestResults.Success.effect:type_name -> cerbos.effect.v1.Effect
	87,  // 114: cerbos.policy.v1.TestResults.Success.outputs:type_name -> cerbos.engine.v1.OutputEntry
	83,  // 115: cerbos.policy.v1.TestResults.OutputFailure.MismatchedValue.expected:type_name -> google.protobuf.Value
	83,  // 116: cerbos.policy.v1.TestResults.OutputFailure.MismatchedValue.actual:type_name -> google.protobuf.Value
	83,  // 117: cerbos.policy.v1.TestResults.OutputFailure.MissingValue.expected:type_name -> google.protobuf.Value
	118, // [118:118] is the sub-list for method output_type
	118, // [118:118] is the sub-list for method input_type
	118, // [118:118] is the sub-list for extension type_name
	118, // [118:118] is the sub-list for extension extendee
	0,   // [0:118] is the sub-list for field type_name
}

func init() { file_cerbos_policy_v1_policy_proto_init() }
func file_cerbos_policy_v1_policy_proto_init() {
	if File_cerbos_policy_v1_policy_proto != nil {
		return
	}
	file_cerbos_policy_v1_policy_proto_msgTypes[0].OneofWrappers = []any{
		(*Policy_ResourcePolicy)(nil),
		(*Policy_PrincipalPolicy)(nil),
		(*Policy_DerivedRoles)(nil),
		(*Policy_ExportVariables)(nil),
		(*Policy_RolePolicy)(nil),
		(*Policy_ExportConstants)(nil),
	}
	file_cerbos_policy_v1_policy_proto_msgTypes[5].OneofWrappers = []any{
		(*RolePolicy_Role)(nil),
	}
	file_cerbos_policy_v1_policy_proto_msgTypes[15].OneofWrappers = []any{
		(*Condition_Match)(nil),
		(*Condition_Script)(nil),
	}
	file_cerbos_policy_v1_policy_proto_msgTypes[16].OneofWrappers = []any{
		(*Match_All)(nil),
		(*Match_Any)(nil),
		(*Match_None)(nil),
		(*Match_Expr)(nil),
	}
	file_cerbos_policy_v1_policy_proto_msgTypes[70].OneofWrappers = []any{
		(*TestResults_Details_Failure)(nil),
		(*TestResults_Details_Error)(nil),
		(*TestResults_Details_Success)(nil),
		(*TestResults_Details_SkipReason)(nil),
	}
	file_cerbos_policy_v1_policy_proto_msgTypes[71].OneofWrappers = []any{
		(*TestResults_OutputFailure_Mismatched)(nil),
		(*TestResults_OutputFailure_Missing)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_cerbos_policy_v1_policy_proto_rawDesc), len(file_cerbos_policy_v1_policy_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   76,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_cerbos_policy_v1_policy_proto_goTypes,
		DependencyIndexes: file_cerbos_policy_v1_policy_proto_depIdxs,
		EnumInfos:         file_cerbos_policy_v1_policy_proto_enumTypes,
		MessageInfos:      file_cerbos_policy_v1_policy_proto_msgTypes,
	}.Build()
	File_cerbos_policy_v1_policy_proto = out.File
	file_cerbos_policy_v1_policy_proto_goTypes = nil
	file_cerbos_policy_v1_policy_proto_depIdxs = nil
}
