// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.8
// 	protoc        (unknown)
// source: authzed/api/v1/schema_service.proto

package v1

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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

// ReadSchemaRequest returns the schema from the database.
type ReadSchemaRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReadSchemaRequest) ProtoMessage() {}

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

// ReadSchemaResponse is the resulting data after having read the Object
// Definitions from a Schema.
type ReadSchemaResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// schema_text is the textual form of the current schema in the system
	SchemaText string `protobuf:"bytes,1,opt,name=schema_text,json=schemaText,proto3" json:"schema_text,omitempty"`
	// read_at is the ZedToken at which the schema was read.
	ReadAt        *ZedToken `protobuf:"bytes,2,opt,name=read_at,json=readAt,proto3" json:"read_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReadSchemaResponse) ProtoMessage() {}

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

func (x *ReadSchemaResponse) GetSchemaText() string {
	if x != nil {
		return x.SchemaText
	}
	return ""
}

func (x *ReadSchemaResponse) GetReadAt() *ZedToken {
	if x != nil {
		return x.ReadAt
	}
	return nil
}

// WriteSchemaRequest is the required data used to "upsert" the Schema of a
// Permissions System.
type WriteSchemaRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The Schema containing one or more Object Definitions that will be written
	// to the Permissions System.
	Schema        string `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` // 4MiB
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WriteSchemaRequest) ProtoMessage() {}

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

func (x *WriteSchemaRequest) GetSchema() string {
	if x != nil {
		return x.Schema
	}
	return ""
}

// WriteSchemaResponse is the resulting data after having written a Schema to
// a Permissions System.
type WriteSchemaResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// written_at is the ZedToken at which the schema was written.
	WrittenAt     *ZedToken `protobuf:"bytes,1,opt,name=written_at,json=writtenAt,proto3" json:"written_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WriteSchemaResponse) ProtoMessage() {}

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

func (x *WriteSchemaResponse) GetWrittenAt() *ZedToken {
	if x != nil {
		return x.WrittenAt
	}
	return nil
}

type ReflectSchemaRequest struct {
	state       protoimpl.MessageState `protogen:"open.v1"`
	Consistency *Consistency           `protobuf:"bytes,1,opt,name=consistency,proto3" json:"consistency,omitempty"`
	// optional_filters defines optional filters that are applied in
	// an OR fashion to the schema, before being returned
	OptionalFilters []*ReflectionSchemaFilter `protobuf:"bytes,2,rep,name=optional_filters,json=optionalFilters,proto3" json:"optional_filters,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*ReflectSchemaRequest) ProtoMessage() {}

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

func (x *ReflectSchemaRequest) GetConsistency() *Consistency {
	if x != nil {
		return x.Consistency
	}
	return nil
}

func (x *ReflectSchemaRequest) GetOptionalFilters() []*ReflectionSchemaFilter {
	if x != nil {
		return x.OptionalFilters
	}
	return nil
}

type ReflectSchemaResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// definitions are the definitions defined in the schema.
	Definitions []*ReflectionDefinition `protobuf:"bytes,1,rep,name=definitions,proto3" json:"definitions,omitempty"`
	// caveats are the caveats defined in the schema.
	Caveats []*ReflectionCaveat `protobuf:"bytes,2,rep,name=caveats,proto3" json:"caveats,omitempty"`
	// read_at is the ZedToken at which the schema was read.
	ReadAt        *ZedToken `protobuf:"bytes,3,opt,name=read_at,json=readAt,proto3" json:"read_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReflectSchemaResponse) ProtoMessage() {}

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

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

func (x *ReflectSchemaResponse) GetCaveats() []*ReflectionCaveat {
	if x != nil {
		return x.Caveats
	}
	return nil
}

func (x *ReflectSchemaResponse) GetReadAt() *ZedToken {
	if x != nil {
		return x.ReadAt
	}
	return nil
}

// ReflectionSchemaFilter is a filter that can be applied to the schema on reflection.
type ReflectionSchemaFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// optional_definition_name_filter is a prefix that is matched against the definition name.
	OptionalDefinitionNameFilter string `protobuf:"bytes,1,opt,name=optional_definition_name_filter,json=optionalDefinitionNameFilter,proto3" json:"optional_definition_name_filter,omitempty"`
	// optional_caveat_name_filter is a prefix that is matched against the caveat name.
	OptionalCaveatNameFilter string `protobuf:"bytes,2,opt,name=optional_caveat_name_filter,json=optionalCaveatNameFilter,proto3" json:"optional_caveat_name_filter,omitempty"`
	// optional_relation_name_filter is a prefix that is matched against the relation name.
	OptionalRelationNameFilter string `protobuf:"bytes,3,opt,name=optional_relation_name_filter,json=optionalRelationNameFilter,proto3" json:"optional_relation_name_filter,omitempty"`
	// optional_permission_name_filter is a prefix that is matched against the permission name.
	OptionalPermissionNameFilter string `protobuf:"bytes,4,opt,name=optional_permission_name_filter,json=optionalPermissionNameFilter,proto3" json:"optional_permission_name_filter,omitempty"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

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

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

func (*ReflectionSchemaFilter) ProtoMessage() {}

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

func (x *ReflectionSchemaFilter) GetOptionalDefinitionNameFilter() string {
	if x != nil {
		return x.OptionalDefinitionNameFilter
	}
	return ""
}

func (x *ReflectionSchemaFilter) GetOptionalCaveatNameFilter() string {
	if x != nil {
		return x.OptionalCaveatNameFilter
	}
	return ""
}

func (x *ReflectionSchemaFilter) GetOptionalRelationNameFilter() string {
	if x != nil {
		return x.OptionalRelationNameFilter
	}
	return ""
}

func (x *ReflectionSchemaFilter) GetOptionalPermissionNameFilter() string {
	if x != nil {
		return x.OptionalPermissionNameFilter
	}
	return ""
}

// ReflectionDefinition is the representation of a definition in the schema.
type ReflectionDefinition struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// comment is a human-readable comments on the definition. Will include
	// delimiter characters.
	Comment       string                  `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
	Relations     []*ReflectionRelation   `protobuf:"bytes,3,rep,name=relations,proto3" json:"relations,omitempty"`
	Permissions   []*ReflectionPermission `protobuf:"bytes,4,rep,name=permissions,proto3" json:"permissions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReflectionDefinition) ProtoMessage() {}

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

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

func (x *ReflectionDefinition) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ReflectionDefinition) GetRelations() []*ReflectionRelation {
	if x != nil {
		return x.Relations
	}
	return nil
}

func (x *ReflectionDefinition) GetPermissions() []*ReflectionPermission {
	if x != nil {
		return x.Permissions
	}
	return nil
}

// ReflectionCaveat is the representation of a caveat in the schema.
type ReflectionCaveat struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// comment is a human-readable comments on the caveat. Will include
	// delimiter characters.
	Comment       string                       `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
	Parameters    []*ReflectionCaveatParameter `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"`
	Expression    string                       `protobuf:"bytes,4,opt,name=expression,proto3" json:"expression,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReflectionCaveat) ProtoMessage() {}

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

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

func (x *ReflectionCaveat) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ReflectionCaveat) GetParameters() []*ReflectionCaveatParameter {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *ReflectionCaveat) GetExpression() string {
	if x != nil {
		return x.Expression
	}
	return ""
}

// ReflectionCaveatParameter is the representation of a parameter in a caveat.
type ReflectionCaveatParameter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// type is the type of the parameter. Will be a string representing the
	// type, e.g. `int` or `list<string>`
	Type             string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	ParentCaveatName string `protobuf:"bytes,3,opt,name=parent_caveat_name,json=parentCaveatName,proto3" json:"parent_caveat_name,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*ReflectionCaveatParameter) ProtoMessage() {}

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

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

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

func (x *ReflectionCaveatParameter) GetParentCaveatName() string {
	if x != nil {
		return x.ParentCaveatName
	}
	return ""
}

// ReflectionRelation is the representation of a relation in the schema.
type ReflectionRelation struct {
	state                protoimpl.MessageState     `protogen:"open.v1"`
	Name                 string                     `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Comment              string                     `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
	ParentDefinitionName string                     `protobuf:"bytes,3,opt,name=parent_definition_name,json=parentDefinitionName,proto3" json:"parent_definition_name,omitempty"`
	SubjectTypes         []*ReflectionTypeReference `protobuf:"bytes,4,rep,name=subject_types,json=subjectTypes,proto3" json:"subject_types,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*ReflectionRelation) ProtoMessage() {}

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

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

func (x *ReflectionRelation) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ReflectionRelation) GetParentDefinitionName() string {
	if x != nil {
		return x.ParentDefinitionName
	}
	return ""
}

func (x *ReflectionRelation) GetSubjectTypes() []*ReflectionTypeReference {
	if x != nil {
		return x.SubjectTypes
	}
	return nil
}

// ReflectionTypeReference is the representation of a type reference in the schema.
type ReflectionTypeReference struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// subject_definition_name is the name of the subject's definition.
	SubjectDefinitionName string `protobuf:"bytes,1,opt,name=subject_definition_name,json=subjectDefinitionName,proto3" json:"subject_definition_name,omitempty"`
	// optional_caveat_name is the name of the caveat that is applied to the subject, if any.
	OptionalCaveatName string `protobuf:"bytes,2,opt,name=optional_caveat_name,json=optionalCaveatName,proto3" json:"optional_caveat_name,omitempty"`
	// Types that are valid to be assigned to Typeref:
	//
	//	*ReflectionTypeReference_IsTerminalSubject
	//	*ReflectionTypeReference_OptionalRelationName
	//	*ReflectionTypeReference_IsPublicWildcard
	Typeref       isReflectionTypeReference_Typeref `protobuf_oneof:"typeref"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReflectionTypeReference) ProtoMessage() {}

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

func (x *ReflectionTypeReference) GetSubjectDefinitionName() string {
	if x != nil {
		return x.SubjectDefinitionName
	}
	return ""
}

func (x *ReflectionTypeReference) GetOptionalCaveatName() string {
	if x != nil {
		return x.OptionalCaveatName
	}
	return ""
}

func (x *ReflectionTypeReference) GetTyperef() isReflectionTypeReference_Typeref {
	if x != nil {
		return x.Typeref
	}
	return nil
}

func (x *ReflectionTypeReference) GetIsTerminalSubject() bool {
	if x != nil {
		if x, ok := x.Typeref.(*ReflectionTypeReference_IsTerminalSubject); ok {
			return x.IsTerminalSubject
		}
	}
	return false
}

func (x *ReflectionTypeReference) GetOptionalRelationName() string {
	if x != nil {
		if x, ok := x.Typeref.(*ReflectionTypeReference_OptionalRelationName); ok {
			return x.OptionalRelationName
		}
	}
	return ""
}

func (x *ReflectionTypeReference) GetIsPublicWildcard() bool {
	if x != nil {
		if x, ok := x.Typeref.(*ReflectionTypeReference_IsPublicWildcard); ok {
			return x.IsPublicWildcard
		}
	}
	return false
}

type isReflectionTypeReference_Typeref interface {
	isReflectionTypeReference_Typeref()
}

type ReflectionTypeReference_IsTerminalSubject struct {
	// is_terminal_subject is true if the subject is terminal, meaning it is referenced directly vs a sub-relation.
	IsTerminalSubject bool `protobuf:"varint,3,opt,name=is_terminal_subject,json=isTerminalSubject,proto3,oneof"`
}

type ReflectionTypeReference_OptionalRelationName struct {
	// optional_relation_name is the name of the relation that is applied to the subject, if any.
	OptionalRelationName string `protobuf:"bytes,4,opt,name=optional_relation_name,json=optionalRelationName,proto3,oneof"`
}

type ReflectionTypeReference_IsPublicWildcard struct {
	// is_public_wildcard is true if the subject is a public wildcard.
	IsPublicWildcard bool `protobuf:"varint,5,opt,name=is_public_wildcard,json=isPublicWildcard,proto3,oneof"`
}

func (*ReflectionTypeReference_IsTerminalSubject) isReflectionTypeReference_Typeref() {}

func (*ReflectionTypeReference_OptionalRelationName) isReflectionTypeReference_Typeref() {}

func (*ReflectionTypeReference_IsPublicWildcard) isReflectionTypeReference_Typeref() {}

// ReflectionPermission is the representation of a permission in the schema.
type ReflectionPermission struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// comment is a human-readable comments on the permission. Will include
	// delimiter characters.
	Comment              string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
	ParentDefinitionName string `protobuf:"bytes,3,opt,name=parent_definition_name,json=parentDefinitionName,proto3" json:"parent_definition_name,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*ReflectionPermission) ProtoMessage() {}

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

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

func (x *ReflectionPermission) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ReflectionPermission) GetParentDefinitionName() string {
	if x != nil {
		return x.ParentDefinitionName
	}
	return ""
}

type ComputablePermissionsRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Consistency    *Consistency           `protobuf:"bytes,1,opt,name=consistency,proto3" json:"consistency,omitempty"`
	DefinitionName string                 `protobuf:"bytes,2,opt,name=definition_name,json=definitionName,proto3" json:"definition_name,omitempty"`
	RelationName   string                 `protobuf:"bytes,3,opt,name=relation_name,json=relationName,proto3" json:"relation_name,omitempty"`
	// optional_definition_name_match is a prefix that is matched against the definition name(s)
	// for the permissions returned.
	// If not specified, will be ignored.
	OptionalDefinitionNameFilter string `protobuf:"bytes,4,opt,name=optional_definition_name_filter,json=optionalDefinitionNameFilter,proto3" json:"optional_definition_name_filter,omitempty"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

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

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

func (*ComputablePermissionsRequest) ProtoMessage() {}

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

func (x *ComputablePermissionsRequest) GetConsistency() *Consistency {
	if x != nil {
		return x.Consistency
	}
	return nil
}

func (x *ComputablePermissionsRequest) GetDefinitionName() string {
	if x != nil {
		return x.DefinitionName
	}
	return ""
}

func (x *ComputablePermissionsRequest) GetRelationName() string {
	if x != nil {
		return x.RelationName
	}
	return ""
}

func (x *ComputablePermissionsRequest) GetOptionalDefinitionNameFilter() string {
	if x != nil {
		return x.OptionalDefinitionNameFilter
	}
	return ""
}

// ReflectionRelationReference is a reference to a relation or permission in the schema.
type ReflectionRelationReference struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	DefinitionName string                 `protobuf:"bytes,1,opt,name=definition_name,json=definitionName,proto3" json:"definition_name,omitempty"`
	RelationName   string                 `protobuf:"bytes,2,opt,name=relation_name,json=relationName,proto3" json:"relation_name,omitempty"`
	IsPermission   bool                   `protobuf:"varint,3,opt,name=is_permission,json=isPermission,proto3" json:"is_permission,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ReflectionRelationReference) ProtoMessage() {}

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

func (x *ReflectionRelationReference) GetDefinitionName() string {
	if x != nil {
		return x.DefinitionName
	}
	return ""
}

func (x *ReflectionRelationReference) GetRelationName() string {
	if x != nil {
		return x.RelationName
	}
	return ""
}

func (x *ReflectionRelationReference) GetIsPermission() bool {
	if x != nil {
		return x.IsPermission
	}
	return false
}

type ComputablePermissionsResponse struct {
	state       protoimpl.MessageState         `protogen:"open.v1"`
	Permissions []*ReflectionRelationReference `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"`
	// read_at is the ZedToken at which the schema was read.
	ReadAt        *ZedToken `protobuf:"bytes,2,opt,name=read_at,json=readAt,proto3" json:"read_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ComputablePermissionsResponse) ProtoMessage() {}

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

func (x *ComputablePermissionsResponse) GetPermissions() []*ReflectionRelationReference {
	if x != nil {
		return x.Permissions
	}
	return nil
}

func (x *ComputablePermissionsResponse) GetReadAt() *ZedToken {
	if x != nil {
		return x.ReadAt
	}
	return nil
}

type DependentRelationsRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Consistency    *Consistency           `protobuf:"bytes,1,opt,name=consistency,proto3" json:"consistency,omitempty"`
	DefinitionName string                 `protobuf:"bytes,2,opt,name=definition_name,json=definitionName,proto3" json:"definition_name,omitempty"`
	PermissionName string                 `protobuf:"bytes,3,opt,name=permission_name,json=permissionName,proto3" json:"permission_name,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*DependentRelationsRequest) ProtoMessage() {}

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

func (x *DependentRelationsRequest) GetConsistency() *Consistency {
	if x != nil {
		return x.Consistency
	}
	return nil
}

func (x *DependentRelationsRequest) GetDefinitionName() string {
	if x != nil {
		return x.DefinitionName
	}
	return ""
}

func (x *DependentRelationsRequest) GetPermissionName() string {
	if x != nil {
		return x.PermissionName
	}
	return ""
}

type DependentRelationsResponse struct {
	state     protoimpl.MessageState         `protogen:"open.v1"`
	Relations []*ReflectionRelationReference `protobuf:"bytes,1,rep,name=relations,proto3" json:"relations,omitempty"`
	// read_at is the ZedToken at which the schema was read.
	ReadAt        *ZedToken `protobuf:"bytes,2,opt,name=read_at,json=readAt,proto3" json:"read_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DependentRelationsResponse) ProtoMessage() {}

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

func (x *DependentRelationsResponse) GetRelations() []*ReflectionRelationReference {
	if x != nil {
		return x.Relations
	}
	return nil
}

func (x *DependentRelationsResponse) GetReadAt() *ZedToken {
	if x != nil {
		return x.ReadAt
	}
	return nil
}

type DiffSchemaRequest struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Consistency      *Consistency           `protobuf:"bytes,1,opt,name=consistency,proto3" json:"consistency,omitempty"`
	ComparisonSchema string                 `protobuf:"bytes,2,opt,name=comparison_schema,json=comparisonSchema,proto3" json:"comparison_schema,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*DiffSchemaRequest) ProtoMessage() {}

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

func (x *DiffSchemaRequest) GetConsistency() *Consistency {
	if x != nil {
		return x.Consistency
	}
	return nil
}

func (x *DiffSchemaRequest) GetComparisonSchema() string {
	if x != nil {
		return x.ComparisonSchema
	}
	return ""
}

type DiffSchemaResponse struct {
	state protoimpl.MessageState  `protogen:"open.v1"`
	Diffs []*ReflectionSchemaDiff `protobuf:"bytes,1,rep,name=diffs,proto3" json:"diffs,omitempty"`
	// read_at is the ZedToken at which the schema was read.
	ReadAt        *ZedToken `protobuf:"bytes,2,opt,name=read_at,json=readAt,proto3" json:"read_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DiffSchemaResponse) ProtoMessage() {}

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

func (x *DiffSchemaResponse) GetDiffs() []*ReflectionSchemaDiff {
	if x != nil {
		return x.Diffs
	}
	return nil
}

func (x *DiffSchemaResponse) GetReadAt() *ZedToken {
	if x != nil {
		return x.ReadAt
	}
	return nil
}

type ReflectionRelationSubjectTypeChange struct {
	state              protoimpl.MessageState   `protogen:"open.v1"`
	Relation           *ReflectionRelation      `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"`
	ChangedSubjectType *ReflectionTypeReference `protobuf:"bytes,2,opt,name=changed_subject_type,json=changedSubjectType,proto3" json:"changed_subject_type,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ReflectionRelationSubjectTypeChange) ProtoMessage() {}

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

func (x *ReflectionRelationSubjectTypeChange) GetRelation() *ReflectionRelation {
	if x != nil {
		return x.Relation
	}
	return nil
}

func (x *ReflectionRelationSubjectTypeChange) GetChangedSubjectType() *ReflectionTypeReference {
	if x != nil {
		return x.ChangedSubjectType
	}
	return nil
}

type ReflectionCaveatParameterTypeChange struct {
	state         protoimpl.MessageState     `protogen:"open.v1"`
	Parameter     *ReflectionCaveatParameter `protobuf:"bytes,1,opt,name=parameter,proto3" json:"parameter,omitempty"`
	PreviousType  string                     `protobuf:"bytes,2,opt,name=previous_type,json=previousType,proto3" json:"previous_type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReflectionCaveatParameterTypeChange) ProtoMessage() {}

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

func (x *ReflectionCaveatParameterTypeChange) GetParameter() *ReflectionCaveatParameter {
	if x != nil {
		return x.Parameter
	}
	return nil
}

func (x *ReflectionCaveatParameterTypeChange) GetPreviousType() string {
	if x != nil {
		return x.PreviousType
	}
	return ""
}

// ReflectionSchemaDiff is the representation of a diff between two schemas.
type ReflectionSchemaDiff struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Diff:
	//
	//	*ReflectionSchemaDiff_DefinitionAdded
	//	*ReflectionSchemaDiff_DefinitionRemoved
	//	*ReflectionSchemaDiff_DefinitionDocCommentChanged
	//	*ReflectionSchemaDiff_RelationAdded
	//	*ReflectionSchemaDiff_RelationRemoved
	//	*ReflectionSchemaDiff_RelationDocCommentChanged
	//	*ReflectionSchemaDiff_RelationSubjectTypeAdded
	//	*ReflectionSchemaDiff_RelationSubjectTypeRemoved
	//	*ReflectionSchemaDiff_PermissionAdded
	//	*ReflectionSchemaDiff_PermissionRemoved
	//	*ReflectionSchemaDiff_PermissionDocCommentChanged
	//	*ReflectionSchemaDiff_PermissionExprChanged
	//	*ReflectionSchemaDiff_CaveatAdded
	//	*ReflectionSchemaDiff_CaveatRemoved
	//	*ReflectionSchemaDiff_CaveatDocCommentChanged
	//	*ReflectionSchemaDiff_CaveatExprChanged
	//	*ReflectionSchemaDiff_CaveatParameterAdded
	//	*ReflectionSchemaDiff_CaveatParameterRemoved
	//	*ReflectionSchemaDiff_CaveatParameterTypeChanged
	Diff          isReflectionSchemaDiff_Diff `protobuf_oneof:"diff"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReflectionSchemaDiff) ProtoMessage() {}

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

func (x *ReflectionSchemaDiff) GetDiff() isReflectionSchemaDiff_Diff {
	if x != nil {
		return x.Diff
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetDefinitionAdded() *ReflectionDefinition {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_DefinitionAdded); ok {
			return x.DefinitionAdded
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetDefinitionRemoved() *ReflectionDefinition {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_DefinitionRemoved); ok {
			return x.DefinitionRemoved
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetDefinitionDocCommentChanged() *ReflectionDefinition {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_DefinitionDocCommentChanged); ok {
			return x.DefinitionDocCommentChanged
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetRelationAdded() *ReflectionRelation {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_RelationAdded); ok {
			return x.RelationAdded
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetRelationRemoved() *ReflectionRelation {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_RelationRemoved); ok {
			return x.RelationRemoved
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetRelationDocCommentChanged() *ReflectionRelation {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_RelationDocCommentChanged); ok {
			return x.RelationDocCommentChanged
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetRelationSubjectTypeAdded() *ReflectionRelationSubjectTypeChange {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_RelationSubjectTypeAdded); ok {
			return x.RelationSubjectTypeAdded
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetRelationSubjectTypeRemoved() *ReflectionRelationSubjectTypeChange {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_RelationSubjectTypeRemoved); ok {
			return x.RelationSubjectTypeRemoved
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetPermissionAdded() *ReflectionPermission {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_PermissionAdded); ok {
			return x.PermissionAdded
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetPermissionRemoved() *ReflectionPermission {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_PermissionRemoved); ok {
			return x.PermissionRemoved
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetPermissionDocCommentChanged() *ReflectionPermission {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_PermissionDocCommentChanged); ok {
			return x.PermissionDocCommentChanged
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetPermissionExprChanged() *ReflectionPermission {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_PermissionExprChanged); ok {
			return x.PermissionExprChanged
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatAdded() *ReflectionCaveat {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatAdded); ok {
			return x.CaveatAdded
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatRemoved() *ReflectionCaveat {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatRemoved); ok {
			return x.CaveatRemoved
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatDocCommentChanged() *ReflectionCaveat {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatDocCommentChanged); ok {
			return x.CaveatDocCommentChanged
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatExprChanged() *ReflectionCaveat {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatExprChanged); ok {
			return x.CaveatExprChanged
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatParameterAdded() *ReflectionCaveatParameter {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatParameterAdded); ok {
			return x.CaveatParameterAdded
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatParameterRemoved() *ReflectionCaveatParameter {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatParameterRemoved); ok {
			return x.CaveatParameterRemoved
		}
	}
	return nil
}

func (x *ReflectionSchemaDiff) GetCaveatParameterTypeChanged() *ReflectionCaveatParameterTypeChange {
	if x != nil {
		if x, ok := x.Diff.(*ReflectionSchemaDiff_CaveatParameterTypeChanged); ok {
			return x.CaveatParameterTypeChanged
		}
	}
	return nil
}

type isReflectionSchemaDiff_Diff interface {
	isReflectionSchemaDiff_Diff()
}

type ReflectionSchemaDiff_DefinitionAdded struct {
	DefinitionAdded *ReflectionDefinition `protobuf:"bytes,1,opt,name=definition_added,json=definitionAdded,proto3,oneof"`
}

type ReflectionSchemaDiff_DefinitionRemoved struct {
	DefinitionRemoved *ReflectionDefinition `protobuf:"bytes,2,opt,name=definition_removed,json=definitionRemoved,proto3,oneof"`
}

type ReflectionSchemaDiff_DefinitionDocCommentChanged struct {
	DefinitionDocCommentChanged *ReflectionDefinition `protobuf:"bytes,3,opt,name=definition_doc_comment_changed,json=definitionDocCommentChanged,proto3,oneof"`
}

type ReflectionSchemaDiff_RelationAdded struct {
	RelationAdded *ReflectionRelation `protobuf:"bytes,4,opt,name=relation_added,json=relationAdded,proto3,oneof"`
}

type ReflectionSchemaDiff_RelationRemoved struct {
	RelationRemoved *ReflectionRelation `protobuf:"bytes,5,opt,name=relation_removed,json=relationRemoved,proto3,oneof"`
}

type ReflectionSchemaDiff_RelationDocCommentChanged struct {
	RelationDocCommentChanged *ReflectionRelation `protobuf:"bytes,6,opt,name=relation_doc_comment_changed,json=relationDocCommentChanged,proto3,oneof"`
}

type ReflectionSchemaDiff_RelationSubjectTypeAdded struct {
	RelationSubjectTypeAdded *ReflectionRelationSubjectTypeChange `protobuf:"bytes,7,opt,name=relation_subject_type_added,json=relationSubjectTypeAdded,proto3,oneof"`
}

type ReflectionSchemaDiff_RelationSubjectTypeRemoved struct {
	RelationSubjectTypeRemoved *ReflectionRelationSubjectTypeChange `protobuf:"bytes,8,opt,name=relation_subject_type_removed,json=relationSubjectTypeRemoved,proto3,oneof"`
}

type ReflectionSchemaDiff_PermissionAdded struct {
	PermissionAdded *ReflectionPermission `protobuf:"bytes,9,opt,name=permission_added,json=permissionAdded,proto3,oneof"`
}

type ReflectionSchemaDiff_PermissionRemoved struct {
	PermissionRemoved *ReflectionPermission `protobuf:"bytes,10,opt,name=permission_removed,json=permissionRemoved,proto3,oneof"`
}

type ReflectionSchemaDiff_PermissionDocCommentChanged struct {
	PermissionDocCommentChanged *ReflectionPermission `protobuf:"bytes,11,opt,name=permission_doc_comment_changed,json=permissionDocCommentChanged,proto3,oneof"`
}

type ReflectionSchemaDiff_PermissionExprChanged struct {
	PermissionExprChanged *ReflectionPermission `protobuf:"bytes,12,opt,name=permission_expr_changed,json=permissionExprChanged,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatAdded struct {
	CaveatAdded *ReflectionCaveat `protobuf:"bytes,13,opt,name=caveat_added,json=caveatAdded,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatRemoved struct {
	CaveatRemoved *ReflectionCaveat `protobuf:"bytes,14,opt,name=caveat_removed,json=caveatRemoved,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatDocCommentChanged struct {
	CaveatDocCommentChanged *ReflectionCaveat `protobuf:"bytes,15,opt,name=caveat_doc_comment_changed,json=caveatDocCommentChanged,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatExprChanged struct {
	CaveatExprChanged *ReflectionCaveat `protobuf:"bytes,16,opt,name=caveat_expr_changed,json=caveatExprChanged,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatParameterAdded struct {
	CaveatParameterAdded *ReflectionCaveatParameter `protobuf:"bytes,17,opt,name=caveat_parameter_added,json=caveatParameterAdded,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatParameterRemoved struct {
	CaveatParameterRemoved *ReflectionCaveatParameter `protobuf:"bytes,18,opt,name=caveat_parameter_removed,json=caveatParameterRemoved,proto3,oneof"`
}

type ReflectionSchemaDiff_CaveatParameterTypeChanged struct {
	CaveatParameterTypeChanged *ReflectionCaveatParameterTypeChange `protobuf:"bytes,19,opt,name=caveat_parameter_type_changed,json=caveatParameterTypeChanged,proto3,oneof"`
}

func (*ReflectionSchemaDiff_DefinitionAdded) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_DefinitionRemoved) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_DefinitionDocCommentChanged) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_RelationAdded) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_RelationRemoved) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_RelationDocCommentChanged) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_RelationSubjectTypeAdded) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_RelationSubjectTypeRemoved) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_PermissionAdded) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_PermissionRemoved) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_PermissionDocCommentChanged) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_PermissionExprChanged) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatAdded) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatRemoved) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatDocCommentChanged) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatExprChanged) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatParameterAdded) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatParameterRemoved) isReflectionSchemaDiff_Diff() {}

func (*ReflectionSchemaDiff_CaveatParameterTypeChanged) isReflectionSchemaDiff_Diff() {}

var File_authzed_api_v1_schema_service_proto protoreflect.FileDescriptor

const file_authzed_api_v1_schema_service_proto_rawDesc = "" +
	"\n" +
	"#authzed/api/v1/schema_service.proto\x12\x0eauthzed.api.v1\x1a\x19authzed/api/v1/core.proto\x1a'authzed/api/v1/permission_service.proto\x1a\x1bbuf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\x13\n" +
	"\x11ReadSchemaRequest\"x\n" +
	"\x12ReadSchemaResponse\x12\x1f\n" +
	"\vschema_text\x18\x01 \x01(\tR\n" +
	"schemaText\x12A\n" +
	"\aread_at\x18\x02 \x01(\v2\x18.authzed.api.v1.ZedTokenB\x0e\xfaB\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06readAt\"B\n" +
	"\x12WriteSchemaRequest\x12,\n" +
	"\x06schema\x18\x01 \x01(\tB\x14\xfaB\ar\x05(\x80\x80\x80\x02\xbaH\ar\x05(\x80\x80\x80\x02R\x06schema\"^\n" +
	"\x13WriteSchemaResponse\x12G\n" +
	"\n" +
	"written_at\x18\x01 \x01(\v2\x18.authzed.api.v1.ZedTokenB\x0e\xfaB\x05\x8a\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\twrittenAt\"\xa8\x01\n" +
	"\x14ReflectSchemaRequest\x12=\n" +
	"\vconsistency\x18\x01 \x01(\v2\x1b.authzed.api.v1.ConsistencyR\vconsistency\x12Q\n" +
	"\x10optional_filters\x18\x02 \x03(\v2&.authzed.api.v1.ReflectionSchemaFilterR\x0foptionalFilters\"\xce\x01\n" +
	"\x15ReflectSchemaResponse\x12F\n" +
	"\vdefinitions\x18\x01 \x03(\v2$.authzed.api.v1.ReflectionDefinitionR\vdefinitions\x12:\n" +
	"\acaveats\x18\x02 \x03(\v2 .authzed.api.v1.ReflectionCaveatR\acaveats\x121\n" +
	"\aread_at\x18\x03 \x01(\v2\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xa8\x02\n" +
	"\x16ReflectionSchemaFilter\x12E\n" +
	"\x1foptional_definition_name_filter\x18\x01 \x01(\tR\x1coptionalDefinitionNameFilter\x12=\n" +
	"\x1boptional_caveat_name_filter\x18\x02 \x01(\tR\x18optionalCaveatNameFilter\x12A\n" +
	"\x1doptional_relation_name_filter\x18\x03 \x01(\tR\x1aoptionalRelationNameFilter\x12E\n" +
	"\x1foptional_permission_name_filter\x18\x04 \x01(\tR\x1coptionalPermissionNameFilter\"\xce\x01\n" +
	"\x14ReflectionDefinition\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
	"\acomment\x18\x02 \x01(\tR\acomment\x12@\n" +
	"\trelations\x18\x03 \x03(\v2\".authzed.api.v1.ReflectionRelationR\trelations\x12F\n" +
	"\vpermissions\x18\x04 \x03(\v2$.authzed.api.v1.ReflectionPermissionR\vpermissions\"\xab\x01\n" +
	"\x10ReflectionCaveat\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
	"\acomment\x18\x02 \x01(\tR\acomment\x12I\n" +
	"\n" +
	"parameters\x18\x03 \x03(\v2).authzed.api.v1.ReflectionCaveatParameterR\n" +
	"parameters\x12\x1e\n" +
	"\n" +
	"expression\x18\x04 \x01(\tR\n" +
	"expression\"q\n" +
	"\x19ReflectionCaveatParameter\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" +
	"\x04type\x18\x02 \x01(\tR\x04type\x12,\n" +
	"\x12parent_caveat_name\x18\x03 \x01(\tR\x10parentCaveatName\"\xc6\x01\n" +
	"\x12ReflectionRelation\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
	"\acomment\x18\x02 \x01(\tR\acomment\x124\n" +
	"\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\x12L\n" +
	"\rsubject_types\x18\x04 \x03(\v2'.authzed.api.v1.ReflectionTypeReferenceR\fsubjectTypes\"\xa8\x02\n" +
	"\x17ReflectionTypeReference\x126\n" +
	"\x17subject_definition_name\x18\x01 \x01(\tR\x15subjectDefinitionName\x120\n" +
	"\x14optional_caveat_name\x18\x02 \x01(\tR\x12optionalCaveatName\x120\n" +
	"\x13is_terminal_subject\x18\x03 \x01(\bH\x00R\x11isTerminalSubject\x126\n" +
	"\x16optional_relation_name\x18\x04 \x01(\tH\x00R\x14optionalRelationName\x12.\n" +
	"\x12is_public_wildcard\x18\x05 \x01(\bH\x00R\x10isPublicWildcardB\t\n" +
	"\atyperef\"z\n" +
	"\x14ReflectionPermission\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
	"\acomment\x18\x02 \x01(\tR\acomment\x124\n" +
	"\x16parent_definition_name\x18\x03 \x01(\tR\x14parentDefinitionName\"\xf2\x01\n" +
	"\x1cComputablePermissionsRequest\x12=\n" +
	"\vconsistency\x18\x01 \x01(\v2\x1b.authzed.api.v1.ConsistencyR\vconsistency\x12'\n" +
	"\x0fdefinition_name\x18\x02 \x01(\tR\x0edefinitionName\x12#\n" +
	"\rrelation_name\x18\x03 \x01(\tR\frelationName\x12E\n" +
	"\x1foptional_definition_name_filter\x18\x04 \x01(\tR\x1coptionalDefinitionNameFilter\"\x90\x01\n" +
	"\x1bReflectionRelationReference\x12'\n" +
	"\x0fdefinition_name\x18\x01 \x01(\tR\x0edefinitionName\x12#\n" +
	"\rrelation_name\x18\x02 \x01(\tR\frelationName\x12#\n" +
	"\ris_permission\x18\x03 \x01(\bR\fisPermission\"\xa1\x01\n" +
	"\x1dComputablePermissionsResponse\x12M\n" +
	"\vpermissions\x18\x01 \x03(\v2+.authzed.api.v1.ReflectionRelationReferenceR\vpermissions\x121\n" +
	"\aread_at\x18\x02 \x01(\v2\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xac\x01\n" +
	"\x19DependentRelationsRequest\x12=\n" +
	"\vconsistency\x18\x01 \x01(\v2\x1b.authzed.api.v1.ConsistencyR\vconsistency\x12'\n" +
	"\x0fdefinition_name\x18\x02 \x01(\tR\x0edefinitionName\x12'\n" +
	"\x0fpermission_name\x18\x03 \x01(\tR\x0epermissionName\"\x9a\x01\n" +
	"\x1aDependentRelationsResponse\x12I\n" +
	"\trelations\x18\x01 \x03(\v2+.authzed.api.v1.ReflectionRelationReferenceR\trelations\x121\n" +
	"\aread_at\x18\x02 \x01(\v2\x18.authzed.api.v1.ZedTokenR\x06readAt\"\x7f\n" +
	"\x11DiffSchemaRequest\x12=\n" +
	"\vconsistency\x18\x01 \x01(\v2\x1b.authzed.api.v1.ConsistencyR\vconsistency\x12+\n" +
	"\x11comparison_schema\x18\x02 \x01(\tR\x10comparisonSchema\"\x83\x01\n" +
	"\x12DiffSchemaResponse\x12:\n" +
	"\x05diffs\x18\x01 \x03(\v2$.authzed.api.v1.ReflectionSchemaDiffR\x05diffs\x121\n" +
	"\aread_at\x18\x02 \x01(\v2\x18.authzed.api.v1.ZedTokenR\x06readAt\"\xc0\x01\n" +
	"#ReflectionRelationSubjectTypeChange\x12>\n" +
	"\brelation\x18\x01 \x01(\v2\".authzed.api.v1.ReflectionRelationR\brelation\x12Y\n" +
	"\x14changed_subject_type\x18\x02 \x01(\v2'.authzed.api.v1.ReflectionTypeReferenceR\x12changedSubjectType\"\x93\x01\n" +
	"#ReflectionCaveatParameterTypeChange\x12G\n" +
	"\tparameter\x18\x01 \x01(\v2).authzed.api.v1.ReflectionCaveatParameterR\tparameter\x12#\n" +
	"\rprevious_type\x18\x02 \x01(\tR\fpreviousType\"\xac\x0e\n" +
	"\x14ReflectionSchemaDiff\x12Q\n" +
	"\x10definition_added\x18\x01 \x01(\v2$.authzed.api.v1.ReflectionDefinitionH\x00R\x0fdefinitionAdded\x12U\n" +
	"\x12definition_removed\x18\x02 \x01(\v2$.authzed.api.v1.ReflectionDefinitionH\x00R\x11definitionRemoved\x12k\n" +
	"\x1edefinition_doc_comment_changed\x18\x03 \x01(\v2$.authzed.api.v1.ReflectionDefinitionH\x00R\x1bdefinitionDocCommentChanged\x12K\n" +
	"\x0erelation_added\x18\x04 \x01(\v2\".authzed.api.v1.ReflectionRelationH\x00R\rrelationAdded\x12O\n" +
	"\x10relation_removed\x18\x05 \x01(\v2\".authzed.api.v1.ReflectionRelationH\x00R\x0frelationRemoved\x12e\n" +
	"\x1crelation_doc_comment_changed\x18\x06 \x01(\v2\".authzed.api.v1.ReflectionRelationH\x00R\x19relationDocCommentChanged\x12t\n" +
	"\x1brelation_subject_type_added\x18\a \x01(\v23.authzed.api.v1.ReflectionRelationSubjectTypeChangeH\x00R\x18relationSubjectTypeAdded\x12x\n" +
	"\x1drelation_subject_type_removed\x18\b \x01(\v23.authzed.api.v1.ReflectionRelationSubjectTypeChangeH\x00R\x1arelationSubjectTypeRemoved\x12Q\n" +
	"\x10permission_added\x18\t \x01(\v2$.authzed.api.v1.ReflectionPermissionH\x00R\x0fpermissionAdded\x12U\n" +
	"\x12permission_removed\x18\n" +
	" \x01(\v2$.authzed.api.v1.ReflectionPermissionH\x00R\x11permissionRemoved\x12k\n" +
	"\x1epermission_doc_comment_changed\x18\v \x01(\v2$.authzed.api.v1.ReflectionPermissionH\x00R\x1bpermissionDocCommentChanged\x12^\n" +
	"\x17permission_expr_changed\x18\f \x01(\v2$.authzed.api.v1.ReflectionPermissionH\x00R\x15permissionExprChanged\x12E\n" +
	"\fcaveat_added\x18\r \x01(\v2 .authzed.api.v1.ReflectionCaveatH\x00R\vcaveatAdded\x12I\n" +
	"\x0ecaveat_removed\x18\x0e \x01(\v2 .authzed.api.v1.ReflectionCaveatH\x00R\rcaveatRemoved\x12_\n" +
	"\x1acaveat_doc_comment_changed\x18\x0f \x01(\v2 .authzed.api.v1.ReflectionCaveatH\x00R\x17caveatDocCommentChanged\x12R\n" +
	"\x13caveat_expr_changed\x18\x10 \x01(\v2 .authzed.api.v1.ReflectionCaveatH\x00R\x11caveatExprChanged\x12a\n" +
	"\x16caveat_parameter_added\x18\x11 \x01(\v2).authzed.api.v1.ReflectionCaveatParameterH\x00R\x14caveatParameterAdded\x12e\n" +
	"\x18caveat_parameter_removed\x18\x12 \x01(\v2).authzed.api.v1.ReflectionCaveatParameterH\x00R\x16caveatParameterRemoved\x12x\n" +
	"\x1dcaveat_parameter_type_changed\x18\x13 \x01(\v23.authzed.api.v1.ReflectionCaveatParameterTypeChangeH\x00R\x1acaveatParameterTypeChangedB\x06\n" +
	"\x04diff2\xf3\x06\n" +
	"\rSchemaService\x12z\n" +
	"\n" +
	"ReadSchema\x12!.authzed.api.v1.ReadSchemaRequest\x1a\".authzed.api.v1.ReadSchemaResponse\"%\x92A\b\n" +
	"\x06Schema\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/v1/schema/read\x12~\n" +
	"\vWriteSchema\x12\".authzed.api.v1.WriteSchemaRequest\x1a#.authzed.api.v1.WriteSchemaResponse\"&\x92A\b\n" +
	"\x06Schema\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/v1/schema/write\x12\x8c\x01\n" +
	"\rReflectSchema\x12$.authzed.api.v1.ReflectSchemaRequest\x1a%.authzed.api.v1.ReflectSchemaResponse\".\x92A\b\n" +
	"\x06Schema\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/v1/schema/reflectschema\x12\xad\x01\n" +
	"\x15ComputablePermissions\x12,.authzed.api.v1.ComputablePermissionsRequest\x1a-.authzed.api.v1.ComputablePermissionsResponse\"7\x92A\b\n" +
	"\x06Schema\x82\xd3\xe4\x93\x02&:\x01*\"!/v1/schema/permissions/computable\x12\xa3\x01\n" +
	"\x12DependentRelations\x12).authzed.api.v1.DependentRelationsRequest\x1a*.authzed.api.v1.DependentRelationsResponse\"6\x92A\b\n" +
	"\x06Schema\x82\xd3\xe4\x93\x02%:\x01*\" /v1/schema/permissions/dependent\x12\x80\x01\n" +
	"\n" +
	"DiffSchema\x12!.authzed.api.v1.DiffSchemaRequest\x1a\".authzed.api.v1.DiffSchemaResponse\"+\x92A\b\n" +
	"\x06Schema\x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/v1/schema/diffschemaBJ\n" +
	"\x12com.authzed.api.v1P\x01Z2github.com/authzed/authzed-go/proto/authzed/api/v1b\x06proto3"

var (
	file_authzed_api_v1_schema_service_proto_rawDescOnce sync.Once
	file_authzed_api_v1_schema_service_proto_rawDescData []byte
)

func file_authzed_api_v1_schema_service_proto_rawDescGZIP() []byte {
	file_authzed_api_v1_schema_service_proto_rawDescOnce.Do(func() {
		file_authzed_api_v1_schema_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_authzed_api_v1_schema_service_proto_rawDesc), len(file_authzed_api_v1_schema_service_proto_rawDesc)))
	})
	return file_authzed_api_v1_schema_service_proto_rawDescData
}

var file_authzed_api_v1_schema_service_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_authzed_api_v1_schema_service_proto_goTypes = []any{
	(*ReadSchemaRequest)(nil),                   // 0: authzed.api.v1.ReadSchemaRequest
	(*ReadSchemaResponse)(nil),                  // 1: authzed.api.v1.ReadSchemaResponse
	(*WriteSchemaRequest)(nil),                  // 2: authzed.api.v1.WriteSchemaRequest
	(*WriteSchemaResponse)(nil),                 // 3: authzed.api.v1.WriteSchemaResponse
	(*ReflectSchemaRequest)(nil),                // 4: authzed.api.v1.ReflectSchemaRequest
	(*ReflectSchemaResponse)(nil),               // 5: authzed.api.v1.ReflectSchemaResponse
	(*ReflectionSchemaFilter)(nil),              // 6: authzed.api.v1.ReflectionSchemaFilter
	(*ReflectionDefinition)(nil),                // 7: authzed.api.v1.ReflectionDefinition
	(*ReflectionCaveat)(nil),                    // 8: authzed.api.v1.ReflectionCaveat
	(*ReflectionCaveatParameter)(nil),           // 9: authzed.api.v1.ReflectionCaveatParameter
	(*ReflectionRelation)(nil),                  // 10: authzed.api.v1.ReflectionRelation
	(*ReflectionTypeReference)(nil),             // 11: authzed.api.v1.ReflectionTypeReference
	(*ReflectionPermission)(nil),                // 12: authzed.api.v1.ReflectionPermission
	(*ComputablePermissionsRequest)(nil),        // 13: authzed.api.v1.ComputablePermissionsRequest
	(*ReflectionRelationReference)(nil),         // 14: authzed.api.v1.ReflectionRelationReference
	(*ComputablePermissionsResponse)(nil),       // 15: authzed.api.v1.ComputablePermissionsResponse
	(*DependentRelationsRequest)(nil),           // 16: authzed.api.v1.DependentRelationsRequest
	(*DependentRelationsResponse)(nil),          // 17: authzed.api.v1.DependentRelationsResponse
	(*DiffSchemaRequest)(nil),                   // 18: authzed.api.v1.DiffSchemaRequest
	(*DiffSchemaResponse)(nil),                  // 19: authzed.api.v1.DiffSchemaResponse
	(*ReflectionRelationSubjectTypeChange)(nil), // 20: authzed.api.v1.ReflectionRelationSubjectTypeChange
	(*ReflectionCaveatParameterTypeChange)(nil), // 21: authzed.api.v1.ReflectionCaveatParameterTypeChange
	(*ReflectionSchemaDiff)(nil),                // 22: authzed.api.v1.ReflectionSchemaDiff
	(*ZedToken)(nil),                            // 23: authzed.api.v1.ZedToken
	(*Consistency)(nil),                         // 24: authzed.api.v1.Consistency
}
var file_authzed_api_v1_schema_service_proto_depIdxs = []int32{
	23, // 0: authzed.api.v1.ReadSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken
	23, // 1: authzed.api.v1.WriteSchemaResponse.written_at:type_name -> authzed.api.v1.ZedToken
	24, // 2: authzed.api.v1.ReflectSchemaRequest.consistency:type_name -> authzed.api.v1.Consistency
	6,  // 3: authzed.api.v1.ReflectSchemaRequest.optional_filters:type_name -> authzed.api.v1.ReflectionSchemaFilter
	7,  // 4: authzed.api.v1.ReflectSchemaResponse.definitions:type_name -> authzed.api.v1.ReflectionDefinition
	8,  // 5: authzed.api.v1.ReflectSchemaResponse.caveats:type_name -> authzed.api.v1.ReflectionCaveat
	23, // 6: authzed.api.v1.ReflectSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken
	10, // 7: authzed.api.v1.ReflectionDefinition.relations:type_name -> authzed.api.v1.ReflectionRelation
	12, // 8: authzed.api.v1.ReflectionDefinition.permissions:type_name -> authzed.api.v1.ReflectionPermission
	9,  // 9: authzed.api.v1.ReflectionCaveat.parameters:type_name -> authzed.api.v1.ReflectionCaveatParameter
	11, // 10: authzed.api.v1.ReflectionRelation.subject_types:type_name -> authzed.api.v1.ReflectionTypeReference
	24, // 11: authzed.api.v1.ComputablePermissionsRequest.consistency:type_name -> authzed.api.v1.Consistency
	14, // 12: authzed.api.v1.ComputablePermissionsResponse.permissions:type_name -> authzed.api.v1.ReflectionRelationReference
	23, // 13: authzed.api.v1.ComputablePermissionsResponse.read_at:type_name -> authzed.api.v1.ZedToken
	24, // 14: authzed.api.v1.DependentRelationsRequest.consistency:type_name -> authzed.api.v1.Consistency
	14, // 15: authzed.api.v1.DependentRelationsResponse.relations:type_name -> authzed.api.v1.ReflectionRelationReference
	23, // 16: authzed.api.v1.DependentRelationsResponse.read_at:type_name -> authzed.api.v1.ZedToken
	24, // 17: authzed.api.v1.DiffSchemaRequest.consistency:type_name -> authzed.api.v1.Consistency
	22, // 18: authzed.api.v1.DiffSchemaResponse.diffs:type_name -> authzed.api.v1.ReflectionSchemaDiff
	23, // 19: authzed.api.v1.DiffSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken
	10, // 20: authzed.api.v1.ReflectionRelationSubjectTypeChange.relation:type_name -> authzed.api.v1.ReflectionRelation
	11, // 21: authzed.api.v1.ReflectionRelationSubjectTypeChange.changed_subject_type:type_name -> authzed.api.v1.ReflectionTypeReference
	9,  // 22: authzed.api.v1.ReflectionCaveatParameterTypeChange.parameter:type_name -> authzed.api.v1.ReflectionCaveatParameter
	7,  // 23: authzed.api.v1.ReflectionSchemaDiff.definition_added:type_name -> authzed.api.v1.ReflectionDefinition
	7,  // 24: authzed.api.v1.ReflectionSchemaDiff.definition_removed:type_name -> authzed.api.v1.ReflectionDefinition
	7,  // 25: authzed.api.v1.ReflectionSchemaDiff.definition_doc_comment_changed:type_name -> authzed.api.v1.ReflectionDefinition
	10, // 26: authzed.api.v1.ReflectionSchemaDiff.relation_added:type_name -> authzed.api.v1.ReflectionRelation
	10, // 27: authzed.api.v1.ReflectionSchemaDiff.relation_removed:type_name -> authzed.api.v1.ReflectionRelation
	10, // 28: authzed.api.v1.ReflectionSchemaDiff.relation_doc_comment_changed:type_name -> authzed.api.v1.ReflectionRelation
	20, // 29: authzed.api.v1.ReflectionSchemaDiff.relation_subject_type_added:type_name -> authzed.api.v1.ReflectionRelationSubjectTypeChange
	20, // 30: authzed.api.v1.ReflectionSchemaDiff.relation_subject_type_removed:type_name -> authzed.api.v1.ReflectionRelationSubjectTypeChange
	12, // 31: authzed.api.v1.ReflectionSchemaDiff.permission_added:type_name -> authzed.api.v1.ReflectionPermission
	12, // 32: authzed.api.v1.ReflectionSchemaDiff.permission_removed:type_name -> authzed.api.v1.ReflectionPermission
	12, // 33: authzed.api.v1.ReflectionSchemaDiff.permission_doc_comment_changed:type_name -> authzed.api.v1.ReflectionPermission
	12, // 34: authzed.api.v1.ReflectionSchemaDiff.permission_expr_changed:type_name -> authzed.api.v1.ReflectionPermission
	8,  // 35: authzed.api.v1.ReflectionSchemaDiff.caveat_added:type_name -> authzed.api.v1.ReflectionCaveat
	8,  // 36: authzed.api.v1.ReflectionSchemaDiff.caveat_removed:type_name -> authzed.api.v1.ReflectionCaveat
	8,  // 37: authzed.api.v1.ReflectionSchemaDiff.caveat_doc_comment_changed:type_name -> authzed.api.v1.ReflectionCaveat
	8,  // 38: authzed.api.v1.ReflectionSchemaDiff.caveat_expr_changed:type_name -> authzed.api.v1.ReflectionCaveat
	9,  // 39: authzed.api.v1.ReflectionSchemaDiff.caveat_parameter_added:type_name -> authzed.api.v1.ReflectionCaveatParameter
	9,  // 40: authzed.api.v1.ReflectionSchemaDiff.caveat_parameter_removed:type_name -> authzed.api.v1.ReflectionCaveatParameter
	21, // 41: authzed.api.v1.ReflectionSchemaDiff.caveat_parameter_type_changed:type_name -> authzed.api.v1.ReflectionCaveatParameterTypeChange
	0,  // 42: authzed.api.v1.SchemaService.ReadSchema:input_type -> authzed.api.v1.ReadSchemaRequest
	2,  // 43: authzed.api.v1.SchemaService.WriteSchema:input_type -> authzed.api.v1.WriteSchemaRequest
	4,  // 44: authzed.api.v1.SchemaService.ReflectSchema:input_type -> authzed.api.v1.ReflectSchemaRequest
	13, // 45: authzed.api.v1.SchemaService.ComputablePermissions:input_type -> authzed.api.v1.ComputablePermissionsRequest
	16, // 46: authzed.api.v1.SchemaService.DependentRelations:input_type -> authzed.api.v1.DependentRelationsRequest
	18, // 47: authzed.api.v1.SchemaService.DiffSchema:input_type -> authzed.api.v1.DiffSchemaRequest
	1,  // 48: authzed.api.v1.SchemaService.ReadSchema:output_type -> authzed.api.v1.ReadSchemaResponse
	3,  // 49: authzed.api.v1.SchemaService.WriteSchema:output_type -> authzed.api.v1.WriteSchemaResponse
	5,  // 50: authzed.api.v1.SchemaService.ReflectSchema:output_type -> authzed.api.v1.ReflectSchemaResponse
	15, // 51: authzed.api.v1.SchemaService.ComputablePermissions:output_type -> authzed.api.v1.ComputablePermissionsResponse
	17, // 52: authzed.api.v1.SchemaService.DependentRelations:output_type -> authzed.api.v1.DependentRelationsResponse
	19, // 53: authzed.api.v1.SchemaService.DiffSchema:output_type -> authzed.api.v1.DiffSchemaResponse
	48, // [48:54] is the sub-list for method output_type
	42, // [42:48] is the sub-list for method input_type
	42, // [42:42] is the sub-list for extension type_name
	42, // [42:42] is the sub-list for extension extendee
	0,  // [0:42] is the sub-list for field type_name
}

func init() { file_authzed_api_v1_schema_service_proto_init() }
func file_authzed_api_v1_schema_service_proto_init() {
	if File_authzed_api_v1_schema_service_proto != nil {
		return
	}
	file_authzed_api_v1_core_proto_init()
	file_authzed_api_v1_permission_service_proto_init()
	file_authzed_api_v1_schema_service_proto_msgTypes[11].OneofWrappers = []any{
		(*ReflectionTypeReference_IsTerminalSubject)(nil),
		(*ReflectionTypeReference_OptionalRelationName)(nil),
		(*ReflectionTypeReference_IsPublicWildcard)(nil),
	}
	file_authzed_api_v1_schema_service_proto_msgTypes[22].OneofWrappers = []any{
		(*ReflectionSchemaDiff_DefinitionAdded)(nil),
		(*ReflectionSchemaDiff_DefinitionRemoved)(nil),
		(*ReflectionSchemaDiff_DefinitionDocCommentChanged)(nil),
		(*ReflectionSchemaDiff_RelationAdded)(nil),
		(*ReflectionSchemaDiff_RelationRemoved)(nil),
		(*ReflectionSchemaDiff_RelationDocCommentChanged)(nil),
		(*ReflectionSchemaDiff_RelationSubjectTypeAdded)(nil),
		(*ReflectionSchemaDiff_RelationSubjectTypeRemoved)(nil),
		(*ReflectionSchemaDiff_PermissionAdded)(nil),
		(*ReflectionSchemaDiff_PermissionRemoved)(nil),
		(*ReflectionSchemaDiff_PermissionDocCommentChanged)(nil),
		(*ReflectionSchemaDiff_PermissionExprChanged)(nil),
		(*ReflectionSchemaDiff_CaveatAdded)(nil),
		(*ReflectionSchemaDiff_CaveatRemoved)(nil),
		(*ReflectionSchemaDiff_CaveatDocCommentChanged)(nil),
		(*ReflectionSchemaDiff_CaveatExprChanged)(nil),
		(*ReflectionSchemaDiff_CaveatParameterAdded)(nil),
		(*ReflectionSchemaDiff_CaveatParameterRemoved)(nil),
		(*ReflectionSchemaDiff_CaveatParameterTypeChanged)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_authzed_api_v1_schema_service_proto_rawDesc), len(file_authzed_api_v1_schema_service_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   23,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_authzed_api_v1_schema_service_proto_goTypes,
		DependencyIndexes: file_authzed_api_v1_schema_service_proto_depIdxs,
		MessageInfos:      file_authzed_api_v1_schema_service_proto_msgTypes,
	}.Build()
	File_authzed_api_v1_schema_service_proto = out.File
	file_authzed_api_v1_schema_service_proto_goTypes = nil
	file_authzed_api_v1_schema_service_proto_depIdxs = nil
}
