// Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/spec/v1.0/schema/provenance.proto

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v4.24.4
// source: in_toto_attestation/predicates/provenance/v1/provenance.proto

package v1

import (
	v1 "github.com/in-toto/attestation/go/v1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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)
)

// Proto representation of predicate type https://slsa.dev/provenance/v1
// Validation of all fields is left to the users of this proto.
type Provenance struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	BuildDefinition *BuildDefinition       `protobuf:"bytes,1,opt,name=build_definition,json=buildDefinition,proto3" json:"build_definition,omitempty"`
	RunDetails      *RunDetails            `protobuf:"bytes,2,opt,name=run_details,json=runDetails,proto3" json:"run_details,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Provenance) ProtoMessage() {}

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

func (x *Provenance) GetBuildDefinition() *BuildDefinition {
	if x != nil {
		return x.BuildDefinition
	}
	return nil
}

func (x *Provenance) GetRunDetails() *RunDetails {
	if x != nil {
		return x.RunDetails
	}
	return nil
}

type BuildDefinition struct {
	state                protoimpl.MessageState   `protogen:"open.v1"`
	BuildType            string                   `protobuf:"bytes,1,opt,name=build_type,json=buildType,proto3" json:"build_type,omitempty"`
	ExternalParameters   *structpb.Struct         `protobuf:"bytes,2,opt,name=external_parameters,json=externalParameters,proto3" json:"external_parameters,omitempty"`
	InternalParameters   *structpb.Struct         `protobuf:"bytes,3,opt,name=internal_parameters,json=internalParameters,proto3" json:"internal_parameters,omitempty"`
	ResolvedDependencies []*v1.ResourceDescriptor `protobuf:"bytes,4,rep,name=resolved_dependencies,json=resolvedDependencies,proto3" json:"resolved_dependencies,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*BuildDefinition) ProtoMessage() {}

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

func (x *BuildDefinition) GetBuildType() string {
	if x != nil {
		return x.BuildType
	}
	return ""
}

func (x *BuildDefinition) GetExternalParameters() *structpb.Struct {
	if x != nil {
		return x.ExternalParameters
	}
	return nil
}

func (x *BuildDefinition) GetInternalParameters() *structpb.Struct {
	if x != nil {
		return x.InternalParameters
	}
	return nil
}

func (x *BuildDefinition) GetResolvedDependencies() []*v1.ResourceDescriptor {
	if x != nil {
		return x.ResolvedDependencies
	}
	return nil
}

type RunDetails struct {
	state         protoimpl.MessageState   `protogen:"open.v1"`
	Builder       *Builder                 `protobuf:"bytes,1,opt,name=builder,proto3" json:"builder,omitempty"`
	Metadata      *BuildMetadata           `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Byproducts    []*v1.ResourceDescriptor `protobuf:"bytes,3,rep,name=byproducts,proto3" json:"byproducts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RunDetails) ProtoMessage() {}

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

func (x *RunDetails) GetBuilder() *Builder {
	if x != nil {
		return x.Builder
	}
	return nil
}

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

func (x *RunDetails) GetByproducts() []*v1.ResourceDescriptor {
	if x != nil {
		return x.Byproducts
	}
	return nil
}

type Builder struct {
	state               protoimpl.MessageState   `protogen:"open.v1"`
	Id                  string                   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Version             map[string]string        `protobuf:"bytes,2,rep,name=version,proto3" json:"version,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	BuilderDependencies []*v1.ResourceDescriptor `protobuf:"bytes,3,rep,name=builder_dependencies,json=builderDependencies,proto3" json:"builder_dependencies,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*Builder) ProtoMessage() {}

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

func (x *Builder) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Builder) GetVersion() map[string]string {
	if x != nil {
		return x.Version
	}
	return nil
}

func (x *Builder) GetBuilderDependencies() []*v1.ResourceDescriptor {
	if x != nil {
		return x.BuilderDependencies
	}
	return nil
}

type BuildMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	InvocationId  string                 `protobuf:"bytes,1,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"`
	StartedOn     *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=started_on,json=startedOn,proto3" json:"started_on,omitempty"`
	FinishedOn    *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=finished_on,json=finishedOn,proto3" json:"finished_on,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildMetadata) ProtoMessage() {}

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

func (x *BuildMetadata) GetInvocationId() string {
	if x != nil {
		return x.InvocationId
	}
	return ""
}

func (x *BuildMetadata) GetStartedOn() *timestamppb.Timestamp {
	if x != nil {
		return x.StartedOn
	}
	return nil
}

func (x *BuildMetadata) GetFinishedOn() *timestamppb.Timestamp {
	if x != nil {
		return x.FinishedOn
	}
	return nil
}

var File_in_toto_attestation_predicates_provenance_v1_provenance_proto protoreflect.FileDescriptor

const file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc = "" +
	"\n" +
	"=in_toto_attestation/predicates/provenance/v1/provenance.proto\x12,in_toto_attestation.predicates.provenance.v1\x1a0in_toto_attestation/v1/resource_descriptor.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd1\x01\n" +
	"\n" +
	"Provenance\x12h\n" +
	"\x10build_definition\x18\x01 \x01(\v2=.in_toto_attestation.predicates.provenance.v1.BuildDefinitionR\x0fbuildDefinition\x12Y\n" +
	"\vrun_details\x18\x02 \x01(\v28.in_toto_attestation.predicates.provenance.v1.RunDetailsR\n" +
	"runDetails\"\xa5\x02\n" +
	"\x0fBuildDefinition\x12\x1d\n" +
	"\n" +
	"build_type\x18\x01 \x01(\tR\tbuildType\x12H\n" +
	"\x13external_parameters\x18\x02 \x01(\v2\x17.google.protobuf.StructR\x12externalParameters\x12H\n" +
	"\x13internal_parameters\x18\x03 \x01(\v2\x17.google.protobuf.StructR\x12internalParameters\x12_\n" +
	"\x15resolved_dependencies\x18\x04 \x03(\v2*.in_toto_attestation.v1.ResourceDescriptorR\x14resolvedDependencies\"\x82\x02\n" +
	"\n" +
	"RunDetails\x12O\n" +
	"\abuilder\x18\x01 \x01(\v25.in_toto_attestation.predicates.provenance.v1.BuilderR\abuilder\x12W\n" +
	"\bmetadata\x18\x02 \x01(\v2;.in_toto_attestation.predicates.provenance.v1.BuildMetadataR\bmetadata\x12J\n" +
	"\n" +
	"byproducts\x18\x03 \x03(\v2*.in_toto_attestation.v1.ResourceDescriptorR\n" +
	"byproducts\"\x92\x02\n" +
	"\aBuilder\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\\\n" +
	"\aversion\x18\x02 \x03(\v2B.in_toto_attestation.predicates.provenance.v1.Builder.VersionEntryR\aversion\x12]\n" +
	"\x14builder_dependencies\x18\x03 \x03(\v2*.in_toto_attestation.v1.ResourceDescriptorR\x13builderDependencies\x1a:\n" +
	"\fVersionEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xac\x01\n" +
	"\rBuildMetadata\x12#\n" +
	"\rinvocation_id\x18\x01 \x01(\tR\finvocationId\x129\n" +
	"\n" +
	"started_on\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedOn\x12;\n" +
	"\vfinished_on\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"finishedOnBs\n" +
	"5io.github.intoto.attestation.predicates.provenance.v1Z:github.com/in-toto/attestation/go/predicates/provenance/v1b\x06proto3"

var (
	file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescOnce sync.Once
	file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData []byte
)

func file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP() []byte {
	file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescOnce.Do(func() {
		file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc), len(file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc)))
	})
	return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData
}

var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_goTypes = []any{
	(*Provenance)(nil),            // 0: in_toto_attestation.predicates.provenance.v1.Provenance
	(*BuildDefinition)(nil),       // 1: in_toto_attestation.predicates.provenance.v1.BuildDefinition
	(*RunDetails)(nil),            // 2: in_toto_attestation.predicates.provenance.v1.RunDetails
	(*Builder)(nil),               // 3: in_toto_attestation.predicates.provenance.v1.Builder
	(*BuildMetadata)(nil),         // 4: in_toto_attestation.predicates.provenance.v1.BuildMetadata
	nil,                           // 5: in_toto_attestation.predicates.provenance.v1.Builder.VersionEntry
	(*structpb.Struct)(nil),       // 6: google.protobuf.Struct
	(*v1.ResourceDescriptor)(nil), // 7: in_toto_attestation.v1.ResourceDescriptor
	(*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp
}
var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_depIdxs = []int32{
	1,  // 0: in_toto_attestation.predicates.provenance.v1.Provenance.build_definition:type_name -> in_toto_attestation.predicates.provenance.v1.BuildDefinition
	2,  // 1: in_toto_attestation.predicates.provenance.v1.Provenance.run_details:type_name -> in_toto_attestation.predicates.provenance.v1.RunDetails
	6,  // 2: in_toto_attestation.predicates.provenance.v1.BuildDefinition.external_parameters:type_name -> google.protobuf.Struct
	6,  // 3: in_toto_attestation.predicates.provenance.v1.BuildDefinition.internal_parameters:type_name -> google.protobuf.Struct
	7,  // 4: in_toto_attestation.predicates.provenance.v1.BuildDefinition.resolved_dependencies:type_name -> in_toto_attestation.v1.ResourceDescriptor
	3,  // 5: in_toto_attestation.predicates.provenance.v1.RunDetails.builder:type_name -> in_toto_attestation.predicates.provenance.v1.Builder
	4,  // 6: in_toto_attestation.predicates.provenance.v1.RunDetails.metadata:type_name -> in_toto_attestation.predicates.provenance.v1.BuildMetadata
	7,  // 7: in_toto_attestation.predicates.provenance.v1.RunDetails.byproducts:type_name -> in_toto_attestation.v1.ResourceDescriptor
	5,  // 8: in_toto_attestation.predicates.provenance.v1.Builder.version:type_name -> in_toto_attestation.predicates.provenance.v1.Builder.VersionEntry
	7,  // 9: in_toto_attestation.predicates.provenance.v1.Builder.builder_dependencies:type_name -> in_toto_attestation.v1.ResourceDescriptor
	8,  // 10: in_toto_attestation.predicates.provenance.v1.BuildMetadata.started_on:type_name -> google.protobuf.Timestamp
	8,  // 11: in_toto_attestation.predicates.provenance.v1.BuildMetadata.finished_on:type_name -> google.protobuf.Timestamp
	12, // [12:12] is the sub-list for method output_type
	12, // [12:12] is the sub-list for method input_type
	12, // [12:12] is the sub-list for extension type_name
	12, // [12:12] is the sub-list for extension extendee
	0,  // [0:12] is the sub-list for field type_name
}

func init() { file_in_toto_attestation_predicates_provenance_v1_provenance_proto_init() }
func file_in_toto_attestation_predicates_provenance_v1_provenance_proto_init() {
	if File_in_toto_attestation_predicates_provenance_v1_provenance_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc), len(file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_in_toto_attestation_predicates_provenance_v1_provenance_proto_goTypes,
		DependencyIndexes: file_in_toto_attestation_predicates_provenance_v1_provenance_proto_depIdxs,
		MessageInfos:      file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes,
	}.Build()
	File_in_toto_attestation_predicates_provenance_v1_provenance_proto = out.File
	file_in_toto_attestation_predicates_provenance_v1_provenance_proto_goTypes = nil
	file_in_toto_attestation_predicates_provenance_v1_provenance_proto_depIdxs = nil
}
