// Copyright IBM Corp. 2014, 2026
// SPDX-License-Identifier: BUSL-1.1

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v5.29.3
// source: policy.proto

package proto

import (
	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)
)

// SetupRequest is the message body for the Setup RPC.
type PolicySetupRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// client_capabilities should be populated by the client to indicate which
	// behaviours the client is aware of.
	ClientCapabilities *PolicySetupRequest_ClientCapabilities `protobuf:"bytes,1,opt,name=client_capabilities,json=clientCapabilities,proto3" json:"client_capabilities,omitempty"`
	// source_locations is the list of locations that Policy should use to
	// source policies.
	SourceLocations []string `protobuf:"bytes,2,rep,name=source_locations,json=sourceLocations,proto3" json:"source_locations,omitempty"`
	// callback_service allows Terraform Policy to use the Callback Service API.
	CallbackService uint32 `protobuf:"varint,3,opt,name=callback_service,json=callbackService,proto3" json:"callback_service,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*PolicySetupRequest) ProtoMessage() {}

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

// Deprecated: Use PolicySetupRequest.ProtoReflect.Descriptor instead.
func (*PolicySetupRequest) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{0}
}

func (x *PolicySetupRequest) GetClientCapabilities() *PolicySetupRequest_ClientCapabilities {
	if x != nil {
		return x.ClientCapabilities
	}
	return nil
}

func (x *PolicySetupRequest) GetSourceLocations() []string {
	if x != nil {
		return x.SourceLocations
	}
	return nil
}

func (x *PolicySetupRequest) GetCallbackService() uint32 {
	if x != nil {
		return x.CallbackService
	}
	return 0
}

// SetupResponse is the message response for the Setup RPC.
type PolicySetupResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// service_capabilities will be populated by the server to indicate which
	// behaviours the client should expect from the server.
	ServerCapabilities *PolicySetupResponse_ServerCapabilities `protobuf:"bytes,1,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"`
	// The diagnostics will contain any errors or warnings as a result of loading
	// the Terraform Policy files.
	Diagnostics   []*Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicySetupResponse) ProtoMessage() {}

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

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

func (x *PolicySetupResponse) GetServerCapabilities() *PolicySetupResponse_ServerCapabilities {
	if x != nil {
		return x.ServerCapabilities
	}
	return nil
}

func (x *PolicySetupResponse) GetDiagnostics() []*Diagnostic {
	if x != nil {
		return x.Diagnostics
	}
	return nil
}

// EvaluateResourceRequest is the message body for the EvaluateResource RPC.
type PolicyEvaluateResourceRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// evaluation_id uniquely identifies the policy evaluation request.
	// The callback service also uses this ID to retrieve the functions
	// that will be called during this resource's policy evaluation.
	EvaluationId uint32 `protobuf:"varint,1,opt,name=evaluation_id,json=evaluationId,proto3" json:"evaluation_id,omitempty"`
	// resource is the resource type that the value represents.
	Resource string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
	// attrs contains the data that will eventually be made available within the
	// resource_value data referenced within Terraform Policy files.
	Attrs []byte `protobuf:"bytes,3,opt,name=attrs,proto3" json:"attrs,omitempty"`
	// metadata contains the data that will eventually be made available within
	// the meta object referenced within Terraform Policy files.
	Metadata *PolicyEvaluateResourceRequest_ResourceMetadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// prior_attrs contains the state of the resource prior to the current operation.
	PriorAttrs    []byte `protobuf:"bytes,5,opt,name=prior_attrs,json=priorAttrs,proto3" json:"prior_attrs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateResourceRequest) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateResourceRequest.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateResourceRequest) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{2}
}

func (x *PolicyEvaluateResourceRequest) GetEvaluationId() uint32 {
	if x != nil {
		return x.EvaluationId
	}
	return 0
}

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

func (x *PolicyEvaluateResourceRequest) GetAttrs() []byte {
	if x != nil {
		return x.Attrs
	}
	return nil
}

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

func (x *PolicyEvaluateResourceRequest) GetPriorAttrs() []byte {
	if x != nil {
		return x.PriorAttrs
	}
	return nil
}

// PolicyEvaluationDetail contains detailed information about a single policy evaluation
type PolicyEvaluationDetail struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Address contains the policy address/identifier
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	// Result contains the evaluation result for this specific policy
	Result EvaluateResult `protobuf:"varint,2,opt,name=result,proto3,enum=proto.EvaluateResult" json:"result,omitempty"`
	// File contains the source file path for this policy
	File string `protobuf:"bytes,3,opt,name=file,proto3" json:"file,omitempty"`
	// DefRange contains the range of the entire policy block (for highlighting when policy passes)
	DefRange *Range `protobuf:"bytes,4,opt,name=def_range,json=defRange,proto3" json:"def_range,omitempty"`
	// PolicySetName contains the policy set name from metadata (optional)
	PolicySetName string `protobuf:"bytes,5,opt,name=policy_set_name,json=policySetName,proto3" json:"policy_set_name,omitempty"`
	// PolicySetEnforcement contains framework-level enforcement preference (optional)
	PolicySetEnforcement string `protobuf:"bytes,6,opt,name=policy_set_enforcement,json=policySetEnforcement,proto3" json:"policy_set_enforcement,omitempty"`
	// EnforceResults contains results for each enforce block in the policy
	EnforceResults []*EnforceBlockResult `protobuf:"bytes,7,rep,name=enforce_results,json=enforceResults,proto3" json:"enforce_results,omitempty"`
	// Diagnostics contains policy-specific diagnostics
	Diagnostics   []*Diagnostic `protobuf:"bytes,8,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluationDetail) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluationDetail.ProtoReflect.Descriptor instead.
func (*PolicyEvaluationDetail) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{3}
}

func (x *PolicyEvaluationDetail) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *PolicyEvaluationDetail) GetResult() EvaluateResult {
	if x != nil {
		return x.Result
	}
	return EvaluateResult_INVALID_EVALUATE_RESULT
}

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

func (x *PolicyEvaluationDetail) GetDefRange() *Range {
	if x != nil {
		return x.DefRange
	}
	return nil
}

func (x *PolicyEvaluationDetail) GetPolicySetName() string {
	if x != nil {
		return x.PolicySetName
	}
	return ""
}

func (x *PolicyEvaluationDetail) GetPolicySetEnforcement() string {
	if x != nil {
		return x.PolicySetEnforcement
	}
	return ""
}

func (x *PolicyEvaluationDetail) GetEnforceResults() []*EnforceBlockResult {
	if x != nil {
		return x.EnforceResults
	}
	return nil
}

func (x *PolicyEvaluationDetail) GetDiagnostics() []*Diagnostic {
	if x != nil {
		return x.Diagnostics
	}
	return nil
}

// EnforceBlockResult contains information about a single enforce block evaluation
type EnforceBlockResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Result contains the evaluation result for this enforce block
	Result EvaluateResult `protobuf:"varint,1,opt,name=result,proto3,enum=proto.EvaluateResult" json:"result,omitempty"`
	// ConditionPassed indicates whether the condition evaluated to true
	ConditionPassed bool `protobuf:"varint,2,opt,name=condition_passed,json=conditionPassed,proto3" json:"condition_passed,omitempty"`
	// Message contains info message (from info_message attribute)
	Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
	// Range contains the range of the enforce block (for highlighting when enforce fails)
	Range *Range `protobuf:"bytes,4,opt,name=range,proto3" json:"range,omitempty"`
	// Diagnostics contains enforce block specific diagnostics
	Diagnostics []*Diagnostic `protobuf:"bytes,5,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
	// Snippet contains code snippet of the enforce block
	Snippet *Snippet `protobuf:"bytes,6,opt,name=snippet,proto3" json:"snippet,omitempty"`
	// BlockIndex contains the index of this enforce block within the policy
	BlockIndex    int32 `protobuf:"varint,7,opt,name=block_index,json=blockIndex,proto3" json:"block_index,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EnforceBlockResult) ProtoMessage() {}

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

// Deprecated: Use EnforceBlockResult.ProtoReflect.Descriptor instead.
func (*EnforceBlockResult) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{4}
}

func (x *EnforceBlockResult) GetResult() EvaluateResult {
	if x != nil {
		return x.Result
	}
	return EvaluateResult_INVALID_EVALUATE_RESULT
}

func (x *EnforceBlockResult) GetConditionPassed() bool {
	if x != nil {
		return x.ConditionPassed
	}
	return false
}

func (x *EnforceBlockResult) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *EnforceBlockResult) GetRange() *Range {
	if x != nil {
		return x.Range
	}
	return nil
}

func (x *EnforceBlockResult) GetDiagnostics() []*Diagnostic {
	if x != nil {
		return x.Diagnostics
	}
	return nil
}

func (x *EnforceBlockResult) GetSnippet() *Snippet {
	if x != nil {
		return x.Snippet
	}
	return nil
}

func (x *EnforceBlockResult) GetBlockIndex() int32 {
	if x != nil {
		return x.BlockIndex
	}
	return 0
}

// EvaluateResourceResponse is the message response for the EvaluateResource RPC.
type PolicyEvaluateResourceResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Result contains a single value for the overall result of the evaluate RPC.
	// This allows users to differentiate between different types of diagnostics.
	Result EvaluateResult `protobuf:"varint,1,opt,name=result,proto3,enum=proto.EvaluateResult" json:"result,omitempty"`
	// PolicyDetails contains detailed information about each policy evaluation
	PolicyDetails []*PolicyEvaluationDetail `protobuf:"bytes,2,rep,name=policy_details,json=policyDetails,proto3" json:"policy_details,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateResourceResponse) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateResourceResponse.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateResourceResponse) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{5}
}

func (x *PolicyEvaluateResourceResponse) GetResult() EvaluateResult {
	if x != nil {
		return x.Result
	}
	return EvaluateResult_INVALID_EVALUATE_RESULT
}

func (x *PolicyEvaluateResourceResponse) GetPolicyDetails() []*PolicyEvaluationDetail {
	if x != nil {
		return x.PolicyDetails
	}
	return nil
}

// EvaluateProviderRequest is the message body for the EvaluateProvider RPC.
type PolicyEvaluateProviderRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// provider_type is the type of the provider (e.g., "aws").
	ProviderType string `protobuf:"bytes,1,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	// attrs contains the provider configuration data that will be made available within the
	// provider_value data referenced within Terraform Policy files.
	Attrs []byte `protobuf:"bytes,2,opt,name=attrs,proto3" json:"attrs,omitempty"`
	// metadata contains the provider metadata that will be made available within the
	// provider_metadata data referenced within Terraform Policy files.
	Metadata      *PolicyEvaluateProviderRequest_ProviderMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateProviderRequest) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateProviderRequest.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateProviderRequest) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{6}
}

func (x *PolicyEvaluateProviderRequest) GetProviderType() string {
	if x != nil {
		return x.ProviderType
	}
	return ""
}

func (x *PolicyEvaluateProviderRequest) GetAttrs() []byte {
	if x != nil {
		return x.Attrs
	}
	return nil
}

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

// EvaluateProviderResponse is the message response for the EvaluateProvider RPC.
type PolicyEvaluateProviderResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Result contains a single value for the overall result of the evaluate provider RPC.
	// This allows users to differentiate between different types of diagnostics.
	Result EvaluateResult `protobuf:"varint,1,opt,name=result,proto3,enum=proto.EvaluateResult" json:"result,omitempty"`
	// PolicyDetails contains detailed information about each policy evaluation
	PolicyDetails []*PolicyEvaluationDetail `protobuf:"bytes,2,rep,name=policy_details,json=policyDetails,proto3" json:"policy_details,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateProviderResponse) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateProviderResponse.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateProviderResponse) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{7}
}

func (x *PolicyEvaluateProviderResponse) GetResult() EvaluateResult {
	if x != nil {
		return x.Result
	}
	return EvaluateResult_INVALID_EVALUATE_RESULT
}

func (x *PolicyEvaluateProviderResponse) GetPolicyDetails() []*PolicyEvaluationDetail {
	if x != nil {
		return x.PolicyDetails
	}
	return nil
}

// EvaluateModuleRequest is the message body for the EvaluateModule RPC.
type PolicyEvaluateModuleRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// module_source is the source for the module that is used (e.g., "./modules/s3_bucket")
	ModuleSource string `protobuf:"bytes,1,opt,name=module_source,json=moduleSource,proto3" json:"module_source,omitempty"`
	// attrs contains the module configuration data that will be made available within the
	// module_value data referenced within Terraform Policy files.
	Attrs []byte `protobuf:"bytes,2,opt,name=attrs,proto3" json:"attrs,omitempty"`
	// metadata contains the module metadata that will be made available within the
	// meta object referenced within module policy blocks.
	Metadata      *PolicyEvaluateModuleRequest_ModuleMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateModuleRequest) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateModuleRequest.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateModuleRequest) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{8}
}

func (x *PolicyEvaluateModuleRequest) GetModuleSource() string {
	if x != nil {
		return x.ModuleSource
	}
	return ""
}

func (x *PolicyEvaluateModuleRequest) GetAttrs() []byte {
	if x != nil {
		return x.Attrs
	}
	return nil
}

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

// EvaluateModuleResponse is the message response for the EvaluateModule RPC.
type PolicyEvaluateModuleResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Result contains a single value for the overall result of the evaluate module RPC.
	// This allows users to differentiate between different types of diagnostics.
	Result EvaluateResult `protobuf:"varint,1,opt,name=result,proto3,enum=proto.EvaluateResult" json:"result,omitempty"`
	// PolicyDetails contains detailed information about each policy evaluation
	PolicyDetails []*PolicyEvaluationDetail `protobuf:"bytes,2,rep,name=policy_details,json=policyDetails,proto3" json:"policy_details,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateModuleResponse) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateModuleResponse.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateModuleResponse) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{9}
}

func (x *PolicyEvaluateModuleResponse) GetResult() EvaluateResult {
	if x != nil {
		return x.Result
	}
	return EvaluateResult_INVALID_EVALUATE_RESULT
}

func (x *PolicyEvaluateModuleResponse) GetPolicyDetails() []*PolicyEvaluationDetail {
	if x != nil {
		return x.PolicyDetails
	}
	return nil
}

// ClientCapabilities are the set of capabilities the client supports.
// At launch, this is empty as we don't have any backwards or forwards
// compatibility concerns to worry about.
type PolicySetupRequest_ClientCapabilities struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicySetupRequest_ClientCapabilities) ProtoMessage() {}

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

// Deprecated: Use PolicySetupRequest_ClientCapabilities.ProtoReflect.Descriptor instead.
func (*PolicySetupRequest_ClientCapabilities) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{0, 0}
}

// A single terraform_configuration block for a Policy file.
type PolicySetupResponse_TerraformConfiguration struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	RequiredVersion string                 `protobuf:"bytes,1,opt,name=required_version,json=requiredVersion,proto3" json:"required_version,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*PolicySetupResponse_TerraformConfiguration) ProtoMessage() {}

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

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

func (x *PolicySetupResponse_TerraformConfiguration) GetRequiredVersion() string {
	if x != nil {
		return x.RequiredVersion
	}
	return ""
}

// ServerCapabilities are the set of capabilities the server supports.
type PolicySetupResponse_ServerCapabilities struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// All loaded terraform_configuration blocks keyed by Policy file path.
	Configurations map[string]*PolicySetupResponse_TerraformConfiguration `protobuf:"bytes,1,rep,name=configurations,proto3" json:"configurations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*PolicySetupResponse_ServerCapabilities) ProtoMessage() {}

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

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

func (x *PolicySetupResponse_ServerCapabilities) GetConfigurations() map[string]*PolicySetupResponse_TerraformConfiguration {
	if x != nil {
		return x.Configurations
	}
	return nil
}

type PolicyEvaluateResourceRequest_ResourceMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ProviderType  string                 `protobuf:"bytes,1,opt,name=provider_type,json=providerType,proto3" json:"provider_type,omitempty"`
	Operation     Operation              `protobuf:"varint,2,opt,name=operation,proto3,enum=proto.Operation" json:"operation,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateResourceRequest_ResourceMetadata) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateResourceRequest_ResourceMetadata.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateResourceRequest_ResourceMetadata) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{2, 0}
}

func (x *PolicyEvaluateResourceRequest_ResourceMetadata) GetProviderType() string {
	if x != nil {
		return x.ProviderType
	}
	return ""
}

func (x *PolicyEvaluateResourceRequest_ResourceMetadata) GetOperation() Operation {
	if x != nil {
		return x.Operation
	}
	return Operation_CREATE
}

type PolicyEvaluateProviderRequest_ProviderMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Alias         string                 `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"`
	Namespace     string                 `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Source        string                 `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
	ModulePath    string                 `protobuf:"bytes,5,opt,name=module_path,json=modulePath,proto3" json:"module_path,omitempty"`
	Version       string                 `protobuf:"bytes,6,opt,name=version,proto3" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateProviderRequest_ProviderMetadata) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateProviderRequest_ProviderMetadata.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateProviderRequest_ProviderMetadata) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{6, 0}
}

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

func (x *PolicyEvaluateProviderRequest_ProviderMetadata) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

func (x *PolicyEvaluateProviderRequest_ProviderMetadata) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

func (x *PolicyEvaluateProviderRequest_ProviderMetadata) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *PolicyEvaluateProviderRequest_ProviderMetadata) GetModulePath() string {
	if x != nil {
		return x.ModulePath
	}
	return ""
}

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

type PolicyEvaluateModuleRequest_ModuleMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Version       string                 `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	Address       string                 `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyEvaluateModuleRequest_ModuleMetadata) ProtoMessage() {}

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

// Deprecated: Use PolicyEvaluateModuleRequest_ModuleMetadata.ProtoReflect.Descriptor instead.
func (*PolicyEvaluateModuleRequest_ModuleMetadata) Descriptor() ([]byte, []int) {
	return file_policy_proto_rawDescGZIP(), []int{8, 0}
}

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

func (x *PolicyEvaluateModuleRequest_ModuleMetadata) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

var File_policy_proto protoreflect.FileDescriptor

const file_policy_proto_rawDesc = "" +
	"\n" +
	"\fpolicy.proto\x12\x05proto\x1a\x11diagnostics.proto\x1a\vtypes.proto\"\xdf\x01\n" +
	"\x12PolicySetupRequest\x12]\n" +
	"\x13client_capabilities\x18\x01 \x01(\v2,.proto.PolicySetupRequest.ClientCapabilitiesR\x12clientCapabilities\x12)\n" +
	"\x10source_locations\x18\x02 \x03(\tR\x0fsourceLocations\x12)\n" +
	"\x10callback_service\x18\x03 \x01(\rR\x0fcallbackService\x1a\x14\n" +
	"\x12ClientCapabilities\"\xe7\x03\n" +
	"\x13PolicySetupResponse\x12^\n" +
	"\x13server_capabilities\x18\x01 \x01(\v2-.proto.PolicySetupResponse.ServerCapabilitiesR\x12serverCapabilities\x123\n" +
	"\vdiagnostics\x18\x02 \x03(\v2\x11.proto.DiagnosticR\vdiagnostics\x1aC\n" +
	"\x16TerraformConfiguration\x12)\n" +
	"\x10required_version\x18\x01 \x01(\tR\x0frequiredVersion\x1a\xf5\x01\n" +
	"\x12ServerCapabilities\x12i\n" +
	"\x0econfigurations\x18\x01 \x03(\v2A.proto.PolicySetupResponse.ServerCapabilities.ConfigurationsEntryR\x0econfigurations\x1at\n" +
	"\x13ConfigurationsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12G\n" +
	"\x05value\x18\x02 \x01(\v21.proto.PolicySetupResponse.TerraformConfigurationR\x05value:\x028\x01\"\xd3\x02\n" +
	"\x1dPolicyEvaluateResourceRequest\x12#\n" +
	"\revaluation_id\x18\x01 \x01(\rR\fevaluationId\x12\x1a\n" +
	"\bresource\x18\x02 \x01(\tR\bresource\x12\x14\n" +
	"\x05attrs\x18\x03 \x01(\fR\x05attrs\x12Q\n" +
	"\bmetadata\x18\x04 \x01(\v25.proto.PolicyEvaluateResourceRequest.ResourceMetadataR\bmetadata\x12\x1f\n" +
	"\vprior_attrs\x18\x05 \x01(\fR\n" +
	"priorAttrs\x1ag\n" +
	"\x10ResourceMetadata\x12#\n" +
	"\rprovider_type\x18\x01 \x01(\tR\fproviderType\x12.\n" +
	"\toperation\x18\x02 \x01(\x0e2\x10.proto.OperationR\toperation\"\xf7\x02\n" +
	"\x16PolicyEvaluationDetail\x12\x18\n" +
	"\aaddress\x18\x01 \x01(\tR\aaddress\x12-\n" +
	"\x06result\x18\x02 \x01(\x0e2\x15.proto.EvaluateResultR\x06result\x12\x12\n" +
	"\x04file\x18\x03 \x01(\tR\x04file\x12)\n" +
	"\tdef_range\x18\x04 \x01(\v2\f.proto.RangeR\bdefRange\x12&\n" +
	"\x0fpolicy_set_name\x18\x05 \x01(\tR\rpolicySetName\x124\n" +
	"\x16policy_set_enforcement\x18\x06 \x01(\tR\x14policySetEnforcement\x12B\n" +
	"\x0fenforce_results\x18\a \x03(\v2\x19.proto.EnforceBlockResultR\x0eenforceResults\x123\n" +
	"\vdiagnostics\x18\b \x03(\v2\x11.proto.DiagnosticR\vdiagnostics\"\xac\x02\n" +
	"\x12EnforceBlockResult\x12-\n" +
	"\x06result\x18\x01 \x01(\x0e2\x15.proto.EvaluateResultR\x06result\x12)\n" +
	"\x10condition_passed\x18\x02 \x01(\bR\x0fconditionPassed\x12\x18\n" +
	"\amessage\x18\x03 \x01(\tR\amessage\x12\"\n" +
	"\x05range\x18\x04 \x01(\v2\f.proto.RangeR\x05range\x123\n" +
	"\vdiagnostics\x18\x05 \x03(\v2\x11.proto.DiagnosticR\vdiagnostics\x12(\n" +
	"\asnippet\x18\x06 \x01(\v2\x0e.proto.SnippetR\asnippet\x12\x1f\n" +
	"\vblock_index\x18\a \x01(\x05R\n" +
	"blockIndex\"\x95\x01\n" +
	"\x1ePolicyEvaluateResourceResponse\x12-\n" +
	"\x06result\x18\x01 \x01(\x0e2\x15.proto.EvaluateResultR\x06result\x12D\n" +
	"\x0epolicy_details\x18\x02 \x03(\v2\x1d.proto.PolicyEvaluationDetailR\rpolicyDetails\"\xdd\x02\n" +
	"\x1dPolicyEvaluateProviderRequest\x12#\n" +
	"\rprovider_type\x18\x01 \x01(\tR\fproviderType\x12\x14\n" +
	"\x05attrs\x18\x02 \x01(\fR\x05attrs\x12Q\n" +
	"\bmetadata\x18\x03 \x01(\v25.proto.PolicyEvaluateProviderRequest.ProviderMetadataR\bmetadata\x1a\xad\x01\n" +
	"\x10ProviderMetadata\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05alias\x18\x02 \x01(\tR\x05alias\x12\x1c\n" +
	"\tnamespace\x18\x03 \x01(\tR\tnamespace\x12\x16\n" +
	"\x06source\x18\x04 \x01(\tR\x06source\x12\x1f\n" +
	"\vmodule_path\x18\x05 \x01(\tR\n" +
	"modulePath\x12\x18\n" +
	"\aversion\x18\x06 \x01(\tR\aversion\"\x95\x01\n" +
	"\x1ePolicyEvaluateProviderResponse\x12-\n" +
	"\x06result\x18\x01 \x01(\x0e2\x15.proto.EvaluateResultR\x06result\x12D\n" +
	"\x0epolicy_details\x18\x02 \x03(\v2\x1d.proto.PolicyEvaluationDetailR\rpolicyDetails\"\xed\x01\n" +
	"\x1bPolicyEvaluateModuleRequest\x12#\n" +
	"\rmodule_source\x18\x01 \x01(\tR\fmoduleSource\x12\x14\n" +
	"\x05attrs\x18\x02 \x01(\fR\x05attrs\x12M\n" +
	"\bmetadata\x18\x03 \x01(\v21.proto.PolicyEvaluateModuleRequest.ModuleMetadataR\bmetadata\x1aD\n" +
	"\x0eModuleMetadata\x12\x18\n" +
	"\aversion\x18\x01 \x01(\tR\aversion\x12\x18\n" +
	"\aaddress\x18\x02 \x01(\tR\aaddress\"\x93\x01\n" +
	"\x1cPolicyEvaluateModuleResponse\x12-\n" +
	"\x06result\x18\x01 \x01(\x0e2\x15.proto.EvaluateResultR\x06result\x12D\n" +
	"\x0epolicy_details\x18\x02 \x03(\v2\x1d.proto.PolicyEvaluationDetailR\rpolicyDetails2\xed\x02\n" +
	"\x06Policy\x12@\n" +
	"\x05Setup\x12\x19.proto.PolicySetupRequest\x1a\x1a.proto.PolicySetupResponse\"\x00\x12a\n" +
	"\x10EvaluateResource\x12$.proto.PolicyEvaluateResourceRequest\x1a%.proto.PolicyEvaluateResourceResponse\"\x00\x12a\n" +
	"\x10EvaluateProvider\x12$.proto.PolicyEvaluateProviderRequest\x1a%.proto.PolicyEvaluateProviderResponse\"\x00\x12[\n" +
	"\x0eEvaluateModule\x12\".proto.PolicyEvaluateModuleRequest\x1a#.proto.PolicyEvaluateModuleResponse\"\x00B4Z2github.com/hashicorp/terraform-policy-plugin/protob\x06proto3"

var (
	file_policy_proto_rawDescOnce sync.Once
	file_policy_proto_rawDescData []byte
)

func file_policy_proto_rawDescGZIP() []byte {
	file_policy_proto_rawDescOnce.Do(func() {
		file_policy_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_policy_proto_rawDesc), len(file_policy_proto_rawDesc)))
	})
	return file_policy_proto_rawDescData
}

var file_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_policy_proto_goTypes = []any{
	(*PolicySetupRequest)(nil),                         // 0: proto.PolicySetupRequest
	(*PolicySetupResponse)(nil),                        // 1: proto.PolicySetupResponse
	(*PolicyEvaluateResourceRequest)(nil),              // 2: proto.PolicyEvaluateResourceRequest
	(*PolicyEvaluationDetail)(nil),                     // 3: proto.PolicyEvaluationDetail
	(*EnforceBlockResult)(nil),                         // 4: proto.EnforceBlockResult
	(*PolicyEvaluateResourceResponse)(nil),             // 5: proto.PolicyEvaluateResourceResponse
	(*PolicyEvaluateProviderRequest)(nil),              // 6: proto.PolicyEvaluateProviderRequest
	(*PolicyEvaluateProviderResponse)(nil),             // 7: proto.PolicyEvaluateProviderResponse
	(*PolicyEvaluateModuleRequest)(nil),                // 8: proto.PolicyEvaluateModuleRequest
	(*PolicyEvaluateModuleResponse)(nil),               // 9: proto.PolicyEvaluateModuleResponse
	(*PolicySetupRequest_ClientCapabilities)(nil),      // 10: proto.PolicySetupRequest.ClientCapabilities
	(*PolicySetupResponse_TerraformConfiguration)(nil), // 11: proto.PolicySetupResponse.TerraformConfiguration
	(*PolicySetupResponse_ServerCapabilities)(nil),     // 12: proto.PolicySetupResponse.ServerCapabilities
	nil, // 13: proto.PolicySetupResponse.ServerCapabilities.ConfigurationsEntry
	(*PolicyEvaluateResourceRequest_ResourceMetadata)(nil), // 14: proto.PolicyEvaluateResourceRequest.ResourceMetadata
	(*PolicyEvaluateProviderRequest_ProviderMetadata)(nil), // 15: proto.PolicyEvaluateProviderRequest.ProviderMetadata
	(*PolicyEvaluateModuleRequest_ModuleMetadata)(nil),     // 16: proto.PolicyEvaluateModuleRequest.ModuleMetadata
	(*Diagnostic)(nil),  // 17: proto.Diagnostic
	(EvaluateResult)(0), // 18: proto.EvaluateResult
	(*Range)(nil),       // 19: proto.Range
	(*Snippet)(nil),     // 20: proto.Snippet
	(Operation)(0),      // 21: proto.Operation
}
var file_policy_proto_depIdxs = []int32{
	10, // 0: proto.PolicySetupRequest.client_capabilities:type_name -> proto.PolicySetupRequest.ClientCapabilities
	12, // 1: proto.PolicySetupResponse.server_capabilities:type_name -> proto.PolicySetupResponse.ServerCapabilities
	17, // 2: proto.PolicySetupResponse.diagnostics:type_name -> proto.Diagnostic
	14, // 3: proto.PolicyEvaluateResourceRequest.metadata:type_name -> proto.PolicyEvaluateResourceRequest.ResourceMetadata
	18, // 4: proto.PolicyEvaluationDetail.result:type_name -> proto.EvaluateResult
	19, // 5: proto.PolicyEvaluationDetail.def_range:type_name -> proto.Range
	4,  // 6: proto.PolicyEvaluationDetail.enforce_results:type_name -> proto.EnforceBlockResult
	17, // 7: proto.PolicyEvaluationDetail.diagnostics:type_name -> proto.Diagnostic
	18, // 8: proto.EnforceBlockResult.result:type_name -> proto.EvaluateResult
	19, // 9: proto.EnforceBlockResult.range:type_name -> proto.Range
	17, // 10: proto.EnforceBlockResult.diagnostics:type_name -> proto.Diagnostic
	20, // 11: proto.EnforceBlockResult.snippet:type_name -> proto.Snippet
	18, // 12: proto.PolicyEvaluateResourceResponse.result:type_name -> proto.EvaluateResult
	3,  // 13: proto.PolicyEvaluateResourceResponse.policy_details:type_name -> proto.PolicyEvaluationDetail
	15, // 14: proto.PolicyEvaluateProviderRequest.metadata:type_name -> proto.PolicyEvaluateProviderRequest.ProviderMetadata
	18, // 15: proto.PolicyEvaluateProviderResponse.result:type_name -> proto.EvaluateResult
	3,  // 16: proto.PolicyEvaluateProviderResponse.policy_details:type_name -> proto.PolicyEvaluationDetail
	16, // 17: proto.PolicyEvaluateModuleRequest.metadata:type_name -> proto.PolicyEvaluateModuleRequest.ModuleMetadata
	18, // 18: proto.PolicyEvaluateModuleResponse.result:type_name -> proto.EvaluateResult
	3,  // 19: proto.PolicyEvaluateModuleResponse.policy_details:type_name -> proto.PolicyEvaluationDetail
	13, // 20: proto.PolicySetupResponse.ServerCapabilities.configurations:type_name -> proto.PolicySetupResponse.ServerCapabilities.ConfigurationsEntry
	11, // 21: proto.PolicySetupResponse.ServerCapabilities.ConfigurationsEntry.value:type_name -> proto.PolicySetupResponse.TerraformConfiguration
	21, // 22: proto.PolicyEvaluateResourceRequest.ResourceMetadata.operation:type_name -> proto.Operation
	0,  // 23: proto.Policy.Setup:input_type -> proto.PolicySetupRequest
	2,  // 24: proto.Policy.EvaluateResource:input_type -> proto.PolicyEvaluateResourceRequest
	6,  // 25: proto.Policy.EvaluateProvider:input_type -> proto.PolicyEvaluateProviderRequest
	8,  // 26: proto.Policy.EvaluateModule:input_type -> proto.PolicyEvaluateModuleRequest
	1,  // 27: proto.Policy.Setup:output_type -> proto.PolicySetupResponse
	5,  // 28: proto.Policy.EvaluateResource:output_type -> proto.PolicyEvaluateResourceResponse
	7,  // 29: proto.Policy.EvaluateProvider:output_type -> proto.PolicyEvaluateProviderResponse
	9,  // 30: proto.Policy.EvaluateModule:output_type -> proto.PolicyEvaluateModuleResponse
	27, // [27:31] is the sub-list for method output_type
	23, // [23:27] is the sub-list for method input_type
	23, // [23:23] is the sub-list for extension type_name
	23, // [23:23] is the sub-list for extension extendee
	0,  // [0:23] is the sub-list for field type_name
}

func init() { file_policy_proto_init() }
func file_policy_proto_init() {
	if File_policy_proto != nil {
		return
	}
	file_diagnostics_proto_init()
	file_types_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_policy_proto_rawDesc), len(file_policy_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_policy_proto_goTypes,
		DependencyIndexes: file_policy_proto_depIdxs,
		MessageInfos:      file_policy_proto_msgTypes,
	}.Build()
	File_policy_proto = out.File
	file_policy_proto_goTypes = nil
	file_policy_proto_depIdxs = nil
}
