// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.19.0
// source: interservice/authz/authz.proto

package authz

import (
	context "context"
	version "github.com/chef/automate/api/external/common/version"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	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)
)

// TODO (tc): Keeping this around for the validation used in protoc-gen-policy/policy.go
type IsAuthorizedReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Subjects      []string               `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty" toml:"subjects,omitempty" mapstructure:"subjects,omitempty"`
	Resource      string                 `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty" toml:"resource,omitempty" mapstructure:"resource,omitempty"`
	Action        string                 `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty" toml:"action,omitempty" mapstructure:"action,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IsAuthorizedReq) ProtoMessage() {}

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

func (x *IsAuthorizedReq) GetSubjects() []string {
	if x != nil {
		return x.Subjects
	}
	return nil
}

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

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

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

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

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

func (*GetVersionReq) ProtoMessage() {}

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

type ProjectsAuthorizedReq struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Subjects       []string               `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty" toml:"subjects,omitempty" mapstructure:"subjects,omitempty"`
	Resource       string                 `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty" toml:"resource,omitempty" mapstructure:"resource,omitempty"`
	Action         string                 `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty" toml:"action,omitempty" mapstructure:"action,omitempty"`
	ProjectsFilter []string               `protobuf:"bytes,4,rep,name=projects_filter,json=projectsFilter,proto3" json:"projects_filter,omitempty" toml:"projects_filter,omitempty" mapstructure:"projects_filter,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ProjectsAuthorizedReq) ProtoMessage() {}

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

func (x *ProjectsAuthorizedReq) GetSubjects() []string {
	if x != nil {
		return x.Subjects
	}
	return nil
}

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

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

func (x *ProjectsAuthorizedReq) GetProjectsFilter() []string {
	if x != nil {
		return x.ProjectsFilter
	}
	return nil
}

type ProjectsAuthorizedResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Projects      []string               `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty" toml:"projects,omitempty" mapstructure:"projects,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ProjectsAuthorizedResp) ProtoMessage() {}

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

func (x *ProjectsAuthorizedResp) GetProjects() []string {
	if x != nil {
		return x.Projects
	}
	return nil
}

type FilterAuthorizedPairsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Subjects      []string               `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty" toml:"subjects,omitempty" mapstructure:"subjects,omitempty"`
	Pairs         []*Pair                `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty" toml:"pairs,omitempty" mapstructure:"pairs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FilterAuthorizedPairsReq) ProtoMessage() {}

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

func (x *FilterAuthorizedPairsReq) GetSubjects() []string {
	if x != nil {
		return x.Subjects
	}
	return nil
}

func (x *FilterAuthorizedPairsReq) GetPairs() []*Pair {
	if x != nil {
		return x.Pairs
	}
	return nil
}

type FilterAuthorizedPairsResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Pairs         []*Pair                `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty" toml:"pairs,omitempty" mapstructure:"pairs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FilterAuthorizedPairsResp) ProtoMessage() {}

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

func (x *FilterAuthorizedPairsResp) GetPairs() []*Pair {
	if x != nil {
		return x.Pairs
	}
	return nil
}

type Pair struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Resource      string                 `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty" toml:"resource,omitempty" mapstructure:"resource,omitempty"`
	Action        string                 `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty" toml:"action,omitempty" mapstructure:"action,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Pair) ProtoMessage() {}

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

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

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

type FilterAuthorizedProjectsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Subjects      []string               `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty" toml:"subjects,omitempty" mapstructure:"subjects,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FilterAuthorizedProjectsReq) ProtoMessage() {}

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

func (x *FilterAuthorizedProjectsReq) GetSubjects() []string {
	if x != nil {
		return x.Subjects
	}
	return nil
}

type FilterAuthorizedProjectsResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Projects      []string               `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty" toml:"projects,omitempty" mapstructure:"projects,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FilterAuthorizedProjectsResp) ProtoMessage() {}

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

func (x *FilterAuthorizedProjectsResp) GetProjects() []string {
	if x != nil {
		return x.Projects
	}
	return nil
}

type ValidateProjectAssignmentReq struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Subjects        []string               `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty" toml:"subjects,omitempty" mapstructure:"subjects,omitempty"`
	OldProjects     []string               `protobuf:"bytes,2,rep,name=old_projects,json=oldProjects,proto3" json:"old_projects,omitempty" toml:"old_projects,omitempty" mapstructure:"old_projects,omitempty"`
	NewProjects     []string               `protobuf:"bytes,3,rep,name=new_projects,json=newProjects,proto3" json:"new_projects,omitempty" toml:"new_projects,omitempty" mapstructure:"new_projects,omitempty"`
	IsUpdateRequest bool                   `protobuf:"varint,4,opt,name=is_update_request,json=isUpdateRequest,proto3" json:"is_update_request,omitempty" toml:"is_update_request,omitempty" mapstructure:"is_update_request,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*ValidateProjectAssignmentReq) ProtoMessage() {}

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

func (x *ValidateProjectAssignmentReq) GetSubjects() []string {
	if x != nil {
		return x.Subjects
	}
	return nil
}

func (x *ValidateProjectAssignmentReq) GetOldProjects() []string {
	if x != nil {
		return x.OldProjects
	}
	return nil
}

func (x *ValidateProjectAssignmentReq) GetNewProjects() []string {
	if x != nil {
		return x.NewProjects
	}
	return nil
}

func (x *ValidateProjectAssignmentReq) GetIsUpdateRequest() bool {
	if x != nil {
		return x.IsUpdateRequest
	}
	return false
}

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

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

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

func (*ValidateProjectAssignmentResp) ProtoMessage() {}

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

var File_interservice_authz_authz_proto protoreflect.FileDescriptor

const file_interservice_authz_authz_proto_rawDesc = "" +
	"\n" +
	"\x1einterservice/authz/authz.proto\x12\x1achef.automate.domain.authz\x1a\x17validate/validate.proto\x1a%external/common/version/version.proto\"\x8a\x02\n" +
	"\x0fIsAuthorizedReq\x12\x7f\n" +
	"\bsubjects\x18\x01 \x03(\tBc\xfaB`\x92\x01]\b\x01\"YrW2U^(?:team|user):(?:local|ldap|saml):[^:*]+$|^token:[^:*]+$|^tls:service:[^:*]+:[^:*]+$R\bsubjects\x12<\n" +
	"\bresource\x18\x02 \x01(\tB \xfaB\x1dr\x1b2\x19^[a-z][^:*]*(?::[^:*]+)*$R\bresource\x128\n" +
	"\x06action\x18\x03 \x01(\tB \xfaB\x1dr\x1b2\x19^[a-z][^:*]*(?::[^:*]+)*$R\x06action\"\x0f\n" +
	"\rGetVersionReq\"\xea\x02\n" +
	"\x15ProjectsAuthorizedReq\x12\x7f\n" +
	"\bsubjects\x18\x01 \x03(\tBc\xfaB`\x92\x01]\b\x01\"YrW2U^(?:team|user):(?:local|ldap|saml):[^:*]+$|^token:[^:*]+$|^tls:service:[^:*]+:[^:*]+$R\bsubjects\x12<\n" +
	"\bresource\x18\x02 \x01(\tB \xfaB\x1dr\x1b2\x19^[a-z][^:*]*(?::[^:*]+)*$R\bresource\x12E\n" +
	"\x06action\x18\x03 \x01(\tB-\xfaB*r(2&^[a-z][a-zA-Z]*(?::[a-z][a-zA-Z]*){2}$R\x06action\x12K\n" +
	"\x0fprojects_filter\x18\x04 \x03(\tB\"\xfaB\x1f\x92\x01\x1c\x18\x01\"\x18r\x162\x14^[a-z0-9()-_]{1,64}$R\x0eprojectsFilter\"V\n" +
	"\x16ProjectsAuthorizedResp\x12<\n" +
	"\bprojects\x18\x01 \x03(\tB \xfaB\x1d\x92\x01\x1a\x18\x01\"\x16r\x142\x12^[a-z0-9-_]{1,64}$R\bprojects\"\xc5\x01\n" +
	"\x18FilterAuthorizedPairsReq\x12q\n" +
	"\bsubjects\x18\x01 \x03(\tBU\xfaBR\x92\x01O\b\x01\"KrI2G^(?:(?:team|user):(?:local|ldap|saml)|token|tls:service:[^:*]+):[^:*]+$R\bsubjects\x126\n" +
	"\x05pairs\x18\x02 \x03(\v2 .chef.automate.domain.authz.PairR\x05pairs\"S\n" +
	"\x19FilterAuthorizedPairsResp\x126\n" +
	"\x05pairs\x18\x01 \x03(\v2 .chef.automate.domain.authz.PairR\x05pairs\"\x8b\x01\n" +
	"\x04Pair\x12<\n" +
	"\bresource\x18\x02 \x01(\tB \xfaB\x1dr\x1b2\x19^[a-z][^:*]*(?::[^:*]+)*$R\bresource\x12E\n" +
	"\x06action\x18\x03 \x01(\tB-\xfaB*r(2&^[a-z][a-zA-Z]*(?::[a-z][a-zA-Z]*){2}$R\x06action\"\x90\x01\n" +
	"\x1bFilterAuthorizedProjectsReq\x12q\n" +
	"\bsubjects\x18\x01 \x03(\tBU\xfaBR\x92\x01O\b\x01\"KrI2G^(?:(?:team|user):(?:local|ldap|saml)|token|tls:service:[^:*]+):[^:*]+$R\bsubjects\":\n" +
	"\x1cFilterAuthorizedProjectsResp\x12\x1a\n" +
	"\bprojects\x18\x01 \x03(\tR\bprojects\"\xf4\x01\n" +
	"\x1cValidateProjectAssignmentReq\x12\x1a\n" +
	"\bsubjects\x18\x01 \x03(\tR\bsubjects\x12E\n" +
	"\fold_projects\x18\x02 \x03(\tB\"\xfaB\x1f\x92\x01\x1c\x18\x01\"\x18r\x162\x14^[a-z0-9()-_]{1,64}$R\voldProjects\x12E\n" +
	"\fnew_projects\x18\x03 \x03(\tB\"\xfaB\x1f\x92\x01\x1c\x18\x01\"\x18r\x162\x14^[a-z0-9()-_]{1,64}$R\vnewProjects\x12*\n" +
	"\x11is_update_request\x18\x04 \x01(\bR\x0fisUpdateRequest\"\x1f\n" +
	"\x1dValidateProjectAssignmentResp2\xba\x05\n" +
	"\x14AuthorizationService\x12s\n" +
	"\n" +
	"GetVersion\x124.chef.automate.api.common.version.VersionInfoRequest\x1a-.chef.automate.api.common.version.VersionInfo\"\x00\x12\x86\x01\n" +
	"\x15FilterAuthorizedPairs\x124.chef.automate.domain.authz.FilterAuthorizedPairsReq\x1a5.chef.automate.domain.authz.FilterAuthorizedPairsResp\"\x00\x12\x8f\x01\n" +
	"\x18FilterAuthorizedProjects\x127.chef.automate.domain.authz.FilterAuthorizedProjectsReq\x1a8.chef.automate.domain.authz.FilterAuthorizedProjectsResp\"\x00\x12}\n" +
	"\x12ProjectsAuthorized\x121.chef.automate.domain.authz.ProjectsAuthorizedReq\x1a2.chef.automate.domain.authz.ProjectsAuthorizedResp\"\x00\x12\x92\x01\n" +
	"\x19ValidateProjectAssignment\x128.chef.automate.domain.authz.ValidateProjectAssignmentReq\x1a9.chef.automate.domain.authz.ValidateProjectAssignmentResp\"\x00B1Z/github.com/chef/automate/api/interservice/authzb\x06proto3"

var (
	file_interservice_authz_authz_proto_rawDescOnce sync.Once
	file_interservice_authz_authz_proto_rawDescData []byte
)

func file_interservice_authz_authz_proto_rawDescGZIP() []byte {
	file_interservice_authz_authz_proto_rawDescOnce.Do(func() {
		file_interservice_authz_authz_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_interservice_authz_authz_proto_rawDesc), len(file_interservice_authz_authz_proto_rawDesc)))
	})
	return file_interservice_authz_authz_proto_rawDescData
}

var file_interservice_authz_authz_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_interservice_authz_authz_proto_goTypes = []any{
	(*IsAuthorizedReq)(nil),               // 0: chef.automate.domain.authz.IsAuthorizedReq
	(*GetVersionReq)(nil),                 // 1: chef.automate.domain.authz.GetVersionReq
	(*ProjectsAuthorizedReq)(nil),         // 2: chef.automate.domain.authz.ProjectsAuthorizedReq
	(*ProjectsAuthorizedResp)(nil),        // 3: chef.automate.domain.authz.ProjectsAuthorizedResp
	(*FilterAuthorizedPairsReq)(nil),      // 4: chef.automate.domain.authz.FilterAuthorizedPairsReq
	(*FilterAuthorizedPairsResp)(nil),     // 5: chef.automate.domain.authz.FilterAuthorizedPairsResp
	(*Pair)(nil),                          // 6: chef.automate.domain.authz.Pair
	(*FilterAuthorizedProjectsReq)(nil),   // 7: chef.automate.domain.authz.FilterAuthorizedProjectsReq
	(*FilterAuthorizedProjectsResp)(nil),  // 8: chef.automate.domain.authz.FilterAuthorizedProjectsResp
	(*ValidateProjectAssignmentReq)(nil),  // 9: chef.automate.domain.authz.ValidateProjectAssignmentReq
	(*ValidateProjectAssignmentResp)(nil), // 10: chef.automate.domain.authz.ValidateProjectAssignmentResp
	(*version.VersionInfoRequest)(nil),    // 11: chef.automate.api.common.version.VersionInfoRequest
	(*version.VersionInfo)(nil),           // 12: chef.automate.api.common.version.VersionInfo
}
var file_interservice_authz_authz_proto_depIdxs = []int32{
	6,  // 0: chef.automate.domain.authz.FilterAuthorizedPairsReq.pairs:type_name -> chef.automate.domain.authz.Pair
	6,  // 1: chef.automate.domain.authz.FilterAuthorizedPairsResp.pairs:type_name -> chef.automate.domain.authz.Pair
	11, // 2: chef.automate.domain.authz.AuthorizationService.GetVersion:input_type -> chef.automate.api.common.version.VersionInfoRequest
	4,  // 3: chef.automate.domain.authz.AuthorizationService.FilterAuthorizedPairs:input_type -> chef.automate.domain.authz.FilterAuthorizedPairsReq
	7,  // 4: chef.automate.domain.authz.AuthorizationService.FilterAuthorizedProjects:input_type -> chef.automate.domain.authz.FilterAuthorizedProjectsReq
	2,  // 5: chef.automate.domain.authz.AuthorizationService.ProjectsAuthorized:input_type -> chef.automate.domain.authz.ProjectsAuthorizedReq
	9,  // 6: chef.automate.domain.authz.AuthorizationService.ValidateProjectAssignment:input_type -> chef.automate.domain.authz.ValidateProjectAssignmentReq
	12, // 7: chef.automate.domain.authz.AuthorizationService.GetVersion:output_type -> chef.automate.api.common.version.VersionInfo
	5,  // 8: chef.automate.domain.authz.AuthorizationService.FilterAuthorizedPairs:output_type -> chef.automate.domain.authz.FilterAuthorizedPairsResp
	8,  // 9: chef.automate.domain.authz.AuthorizationService.FilterAuthorizedProjects:output_type -> chef.automate.domain.authz.FilterAuthorizedProjectsResp
	3,  // 10: chef.automate.domain.authz.AuthorizationService.ProjectsAuthorized:output_type -> chef.automate.domain.authz.ProjectsAuthorizedResp
	10, // 11: chef.automate.domain.authz.AuthorizationService.ValidateProjectAssignment:output_type -> chef.automate.domain.authz.ValidateProjectAssignmentResp
	7,  // [7:12] is the sub-list for method output_type
	2,  // [2:7] is the sub-list for method input_type
	2,  // [2:2] is the sub-list for extension type_name
	2,  // [2:2] is the sub-list for extension extendee
	0,  // [0:2] is the sub-list for field type_name
}

func init() { file_interservice_authz_authz_proto_init() }
func file_interservice_authz_authz_proto_init() {
	if File_interservice_authz_authz_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_interservice_authz_authz_proto_rawDesc), len(file_interservice_authz_authz_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_interservice_authz_authz_proto_goTypes,
		DependencyIndexes: file_interservice_authz_authz_proto_depIdxs,
		MessageInfos:      file_interservice_authz_authz_proto_msgTypes,
	}.Build()
	File_interservice_authz_authz_proto = out.File
	file_interservice_authz_authz_proto_goTypes = nil
	file_interservice_authz_authz_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// AuthorizationServiceClient is the client API for AuthorizationService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AuthorizationServiceClient interface {
	GetVersion(ctx context.Context, in *version.VersionInfoRequest, opts ...grpc.CallOption) (*version.VersionInfo, error)
	FilterAuthorizedPairs(ctx context.Context, in *FilterAuthorizedPairsReq, opts ...grpc.CallOption) (*FilterAuthorizedPairsResp, error)
	FilterAuthorizedProjects(ctx context.Context, in *FilterAuthorizedProjectsReq, opts ...grpc.CallOption) (*FilterAuthorizedProjectsResp, error)
	ProjectsAuthorized(ctx context.Context, in *ProjectsAuthorizedReq, opts ...grpc.CallOption) (*ProjectsAuthorizedResp, error)
	ValidateProjectAssignment(ctx context.Context, in *ValidateProjectAssignmentReq, opts ...grpc.CallOption) (*ValidateProjectAssignmentResp, error)
}

type authorizationServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewAuthorizationServiceClient(cc grpc.ClientConnInterface) AuthorizationServiceClient {
	return &authorizationServiceClient{cc}
}

func (c *authorizationServiceClient) GetVersion(ctx context.Context, in *version.VersionInfoRequest, opts ...grpc.CallOption) (*version.VersionInfo, error) {
	out := new(version.VersionInfo)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.authz.AuthorizationService/GetVersion", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *authorizationServiceClient) FilterAuthorizedPairs(ctx context.Context, in *FilterAuthorizedPairsReq, opts ...grpc.CallOption) (*FilterAuthorizedPairsResp, error) {
	out := new(FilterAuthorizedPairsResp)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.authz.AuthorizationService/FilterAuthorizedPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *authorizationServiceClient) FilterAuthorizedProjects(ctx context.Context, in *FilterAuthorizedProjectsReq, opts ...grpc.CallOption) (*FilterAuthorizedProjectsResp, error) {
	out := new(FilterAuthorizedProjectsResp)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.authz.AuthorizationService/FilterAuthorizedProjects", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *authorizationServiceClient) ProjectsAuthorized(ctx context.Context, in *ProjectsAuthorizedReq, opts ...grpc.CallOption) (*ProjectsAuthorizedResp, error) {
	out := new(ProjectsAuthorizedResp)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.authz.AuthorizationService/ProjectsAuthorized", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *authorizationServiceClient) ValidateProjectAssignment(ctx context.Context, in *ValidateProjectAssignmentReq, opts ...grpc.CallOption) (*ValidateProjectAssignmentResp, error) {
	out := new(ValidateProjectAssignmentResp)
	err := c.cc.Invoke(ctx, "/chef.automate.domain.authz.AuthorizationService/ValidateProjectAssignment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// AuthorizationServiceServer is the server API for AuthorizationService service.
type AuthorizationServiceServer interface {
	GetVersion(context.Context, *version.VersionInfoRequest) (*version.VersionInfo, error)
	FilterAuthorizedPairs(context.Context, *FilterAuthorizedPairsReq) (*FilterAuthorizedPairsResp, error)
	FilterAuthorizedProjects(context.Context, *FilterAuthorizedProjectsReq) (*FilterAuthorizedProjectsResp, error)
	ProjectsAuthorized(context.Context, *ProjectsAuthorizedReq) (*ProjectsAuthorizedResp, error)
	ValidateProjectAssignment(context.Context, *ValidateProjectAssignmentReq) (*ValidateProjectAssignmentResp, error)
}

// UnimplementedAuthorizationServiceServer can be embedded to have forward compatible implementations.
type UnimplementedAuthorizationServiceServer struct {
}

func (*UnimplementedAuthorizationServiceServer) GetVersion(context.Context, *version.VersionInfoRequest) (*version.VersionInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVersion not implemented")
}
func (*UnimplementedAuthorizationServiceServer) FilterAuthorizedPairs(context.Context, *FilterAuthorizedPairsReq) (*FilterAuthorizedPairsResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FilterAuthorizedPairs not implemented")
}
func (*UnimplementedAuthorizationServiceServer) FilterAuthorizedProjects(context.Context, *FilterAuthorizedProjectsReq) (*FilterAuthorizedProjectsResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FilterAuthorizedProjects not implemented")
}
func (*UnimplementedAuthorizationServiceServer) ProjectsAuthorized(context.Context, *ProjectsAuthorizedReq) (*ProjectsAuthorizedResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ProjectsAuthorized not implemented")
}
func (*UnimplementedAuthorizationServiceServer) ValidateProjectAssignment(context.Context, *ValidateProjectAssignmentReq) (*ValidateProjectAssignmentResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ValidateProjectAssignment not implemented")
}

func RegisterAuthorizationServiceServer(s *grpc.Server, srv AuthorizationServiceServer) {
	s.RegisterService(&_AuthorizationService_serviceDesc, srv)
}

func _AuthorizationService_GetVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(version.VersionInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AuthorizationServiceServer).GetVersion(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.authz.AuthorizationService/GetVersion",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AuthorizationServiceServer).GetVersion(ctx, req.(*version.VersionInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AuthorizationService_FilterAuthorizedPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FilterAuthorizedPairsReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AuthorizationServiceServer).FilterAuthorizedPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.authz.AuthorizationService/FilterAuthorizedPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AuthorizationServiceServer).FilterAuthorizedPairs(ctx, req.(*FilterAuthorizedPairsReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _AuthorizationService_FilterAuthorizedProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FilterAuthorizedProjectsReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AuthorizationServiceServer).FilterAuthorizedProjects(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.authz.AuthorizationService/FilterAuthorizedProjects",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AuthorizationServiceServer).FilterAuthorizedProjects(ctx, req.(*FilterAuthorizedProjectsReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _AuthorizationService_ProjectsAuthorized_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ProjectsAuthorizedReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AuthorizationServiceServer).ProjectsAuthorized(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.authz.AuthorizationService/ProjectsAuthorized",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AuthorizationServiceServer).ProjectsAuthorized(ctx, req.(*ProjectsAuthorizedReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _AuthorizationService_ValidateProjectAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ValidateProjectAssignmentReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AuthorizationServiceServer).ValidateProjectAssignment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chef.automate.domain.authz.AuthorizationService/ValidateProjectAssignment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AuthorizationServiceServer).ValidateProjectAssignment(ctx, req.(*ValidateProjectAssignmentReq))
	}
	return interceptor(ctx, in, info, handler)
}

var _AuthorizationService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "chef.automate.domain.authz.AuthorizationService",
	HandlerType: (*AuthorizationServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetVersion",
			Handler:    _AuthorizationService_GetVersion_Handler,
		},
		{
			MethodName: "FilterAuthorizedPairs",
			Handler:    _AuthorizationService_FilterAuthorizedPairs_Handler,
		},
		{
			MethodName: "FilterAuthorizedProjects",
			Handler:    _AuthorizationService_FilterAuthorizedProjects_Handler,
		},
		{
			MethodName: "ProjectsAuthorized",
			Handler:    _AuthorizationService_ProjectsAuthorized_Handler,
		},
		{
			MethodName: "ValidateProjectAssignment",
			Handler:    _AuthorizationService_ValidateProjectAssignment_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "interservice/authz/authz.proto",
}
