// Keep in sync with schema at https://slsa.dev/provenance/v0.1

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

package v01

import (
	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/v0.1
type Provenance struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Builder       *Builder               `protobuf:"bytes,1,opt,name=builder,proto3" json:"builder,omitempty"`
	Recipe        *Recipe                `protobuf:"bytes,2,opt,name=recipe,proto3" json:"recipe,omitempty"`
	Metadata      *Metadata              `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Materials     []*Material            `protobuf:"bytes,4,rep,name=materials,proto3" json:"materials,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Provenance) Reset() {
	*x = Provenance{}
	mi := &file_in_toto_attestation_predicates_provenance_v0_1_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_v0_1_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_v0_1_provenance_proto_rawDescGZIP(), []int{0}
}

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

func (x *Provenance) GetRecipe() *Recipe {
	if x != nil {
		return x.Recipe
	}
	return nil
}

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

func (x *Provenance) GetMaterials() []*Material {
	if x != nil {
		return x.Materials
	}
	return nil
}

type Builder struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Builder) Reset() {
	*x = Builder{}
	mi := &file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_msgTypes[1]
	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_v0_1_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 Builder.ProtoReflect.Descriptor instead.
func (*Builder) Descriptor() ([]byte, []int) {
	return file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescGZIP(), []int{1}
}

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

type Recipe struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	Type              string                 `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	DefinedInMaterial int32                  `protobuf:"varint,2,opt,name=defined_in_material,json=definedInMaterial,proto3" json:"defined_in_material,omitempty"`
	EntryPoint        string                 `protobuf:"bytes,3,opt,name=entry_point,json=entryPoint,proto3" json:"entry_point,omitempty"`
	Arguments         *structpb.Struct       `protobuf:"bytes,4,opt,name=arguments,proto3" json:"arguments,omitempty"`
	Environment       *structpb.Struct       `protobuf:"bytes,5,opt,name=environment,proto3" json:"environment,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*Recipe) ProtoMessage() {}

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

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

func (x *Recipe) GetDefinedInMaterial() int32 {
	if x != nil {
		return x.DefinedInMaterial
	}
	return 0
}

func (x *Recipe) GetEntryPoint() string {
	if x != nil {
		return x.EntryPoint
	}
	return ""
}

func (x *Recipe) GetArguments() *structpb.Struct {
	if x != nil {
		return x.Arguments
	}
	return nil
}

func (x *Recipe) GetEnvironment() *structpb.Struct {
	if x != nil {
		return x.Environment
	}
	return nil
}

type Metadata struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	BuildInvocationId string                 `protobuf:"bytes,1,opt,name=build_invocation_id,json=buildInvocationId,proto3" json:"build_invocation_id,omitempty"`
	BuildStartedOn    *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=build_started_on,json=buildStartedOn,proto3" json:"build_started_on,omitempty"`
	BuildFinishedOn   *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=build_finished_on,json=buildFinishedOn,proto3" json:"build_finished_on,omitempty"`
	Completeness      *Completeness          `protobuf:"bytes,4,opt,name=completeness,proto3" json:"completeness,omitempty"`
	Reproducible      bool                   `protobuf:"varint,5,opt,name=reproducible,proto3" json:"reproducible,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*Metadata) ProtoMessage() {}

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

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

func (x *Metadata) GetBuildStartedOn() *timestamppb.Timestamp {
	if x != nil {
		return x.BuildStartedOn
	}
	return nil
}

func (x *Metadata) GetBuildFinishedOn() *timestamppb.Timestamp {
	if x != nil {
		return x.BuildFinishedOn
	}
	return nil
}

func (x *Metadata) GetCompleteness() *Completeness {
	if x != nil {
		return x.Completeness
	}
	return nil
}

func (x *Metadata) GetReproducible() bool {
	if x != nil {
		return x.Reproducible
	}
	return false
}

type Completeness struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Arguments     bool                   `protobuf:"varint,1,opt,name=arguments,proto3" json:"arguments,omitempty"`
	Environment   bool                   `protobuf:"varint,2,opt,name=environment,proto3" json:"environment,omitempty"`
	Materials     bool                   `protobuf:"varint,3,opt,name=materials,proto3" json:"materials,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Completeness) ProtoMessage() {}

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

func (x *Completeness) GetArguments() bool {
	if x != nil {
		return x.Arguments
	}
	return false
}

func (x *Completeness) GetEnvironment() bool {
	if x != nil {
		return x.Environment
	}
	return false
}

func (x *Completeness) GetMaterials() bool {
	if x != nil {
		return x.Materials
	}
	return false
}

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

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

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

func (*Material) ProtoMessage() {}

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

func (x *Material) GetUri() string {
	if x != nil {
		return x.Uri
	}
	return ""
}

func (x *Material) GetDigest() map[string]string {
	if x != nil {
		return x.Digest
	}
	return nil
}

var File_in_toto_attestation_predicates_provenance_v0_1_provenance_proto protoreflect.FileDescriptor

const file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDesc = "" +
	"\n" +
	"?in_toto_attestation/predicates/provenance/v0.1/provenance.proto\x12-in_toto_attestation.predicates.provenance.v01\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd9\x02\n" +
	"\n" +
	"Provenance\x12P\n" +
	"\abuilder\x18\x01 \x01(\v26.in_toto_attestation.predicates.provenance.v01.BuilderR\abuilder\x12M\n" +
	"\x06recipe\x18\x02 \x01(\v25.in_toto_attestation.predicates.provenance.v01.RecipeR\x06recipe\x12S\n" +
	"\bmetadata\x18\x03 \x01(\v27.in_toto_attestation.predicates.provenance.v01.MetadataR\bmetadata\x12U\n" +
	"\tmaterials\x18\x04 \x03(\v27.in_toto_attestation.predicates.provenance.v01.MaterialR\tmaterials\"\x19\n" +
	"\aBuilder\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"\xdf\x01\n" +
	"\x06Recipe\x12\x12\n" +
	"\x04type\x18\x01 \x01(\tR\x04type\x12.\n" +
	"\x13defined_in_material\x18\x02 \x01(\x05R\x11definedInMaterial\x12\x1f\n" +
	"\ventry_point\x18\x03 \x01(\tR\n" +
	"entryPoint\x125\n" +
	"\targuments\x18\x04 \x01(\v2\x17.google.protobuf.StructR\targuments\x129\n" +
	"\venvironment\x18\x05 \x01(\v2\x17.google.protobuf.StructR\venvironment\"\xcd\x02\n" +
	"\bMetadata\x12.\n" +
	"\x13build_invocation_id\x18\x01 \x01(\tR\x11buildInvocationId\x12D\n" +
	"\x10build_started_on\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x0ebuildStartedOn\x12F\n" +
	"\x11build_finished_on\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x0fbuildFinishedOn\x12_\n" +
	"\fcompleteness\x18\x04 \x01(\v2;.in_toto_attestation.predicates.provenance.v01.CompletenessR\fcompleteness\x12\"\n" +
	"\freproducible\x18\x05 \x01(\bR\freproducible\"l\n" +
	"\fCompleteness\x12\x1c\n" +
	"\targuments\x18\x01 \x01(\bR\targuments\x12 \n" +
	"\venvironment\x18\x02 \x01(\bR\venvironment\x12\x1c\n" +
	"\tmaterials\x18\x03 \x01(\bR\tmaterials\"\xb4\x01\n" +
	"\bMaterial\x12\x10\n" +
	"\x03uri\x18\x01 \x01(\tR\x03uri\x12[\n" +
	"\x06digest\x18\x02 \x03(\v2C.in_toto_attestation.predicates.provenance.v01.Material.DigestEntryR\x06digest\x1a9\n" +
	"\vDigestEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01Bu\n" +
	"6io.github.intoto.attestation.predicates.provenance.v01Z;github.com/in-toto/attestation/go/predicates/provenance/v01b\x06proto3"

var (
	file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescOnce sync.Once
	file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescData []byte
)

func file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescGZIP() []byte {
	file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescOnce.Do(func() {
		file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDesc), len(file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDesc)))
	})
	return file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDescData
}

var file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_goTypes = []any{
	(*Provenance)(nil),            // 0: in_toto_attestation.predicates.provenance.v01.Provenance
	(*Builder)(nil),               // 1: in_toto_attestation.predicates.provenance.v01.Builder
	(*Recipe)(nil),                // 2: in_toto_attestation.predicates.provenance.v01.Recipe
	(*Metadata)(nil),              // 3: in_toto_attestation.predicates.provenance.v01.Metadata
	(*Completeness)(nil),          // 4: in_toto_attestation.predicates.provenance.v01.Completeness
	(*Material)(nil),              // 5: in_toto_attestation.predicates.provenance.v01.Material
	nil,                           // 6: in_toto_attestation.predicates.provenance.v01.Material.DigestEntry
	(*structpb.Struct)(nil),       // 7: google.protobuf.Struct
	(*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp
}
var file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_depIdxs = []int32{
	1,  // 0: in_toto_attestation.predicates.provenance.v01.Provenance.builder:type_name -> in_toto_attestation.predicates.provenance.v01.Builder
	2,  // 1: in_toto_attestation.predicates.provenance.v01.Provenance.recipe:type_name -> in_toto_attestation.predicates.provenance.v01.Recipe
	3,  // 2: in_toto_attestation.predicates.provenance.v01.Provenance.metadata:type_name -> in_toto_attestation.predicates.provenance.v01.Metadata
	5,  // 3: in_toto_attestation.predicates.provenance.v01.Provenance.materials:type_name -> in_toto_attestation.predicates.provenance.v01.Material
	7,  // 4: in_toto_attestation.predicates.provenance.v01.Recipe.arguments:type_name -> google.protobuf.Struct
	7,  // 5: in_toto_attestation.predicates.provenance.v01.Recipe.environment:type_name -> google.protobuf.Struct
	8,  // 6: in_toto_attestation.predicates.provenance.v01.Metadata.build_started_on:type_name -> google.protobuf.Timestamp
	8,  // 7: in_toto_attestation.predicates.provenance.v01.Metadata.build_finished_on:type_name -> google.protobuf.Timestamp
	4,  // 8: in_toto_attestation.predicates.provenance.v01.Metadata.completeness:type_name -> in_toto_attestation.predicates.provenance.v01.Completeness
	6,  // 9: in_toto_attestation.predicates.provenance.v01.Material.digest:type_name -> in_toto_attestation.predicates.provenance.v01.Material.DigestEntry
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_init() }
func file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_init() {
	if File_in_toto_attestation_predicates_provenance_v0_1_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_v0_1_provenance_proto_rawDesc), len(file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_goTypes,
		DependencyIndexes: file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_depIdxs,
		MessageInfos:      file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_msgTypes,
	}.Build()
	File_in_toto_attestation_predicates_provenance_v0_1_provenance_proto = out.File
	file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_goTypes = nil
	file_in_toto_attestation_predicates_provenance_v0_1_provenance_proto_depIdxs = nil
}
