diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0dc3a9b..7b3e99f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.18' + go-version: '1.20' - name: Run tests run: make test - name: Send coverage report to coveralls diff --git a/Makefile b/Makefile index 4dd9d53..b5f3765 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,8 @@ format: .PHONY: unit unit: - go test -v -covermode=count -coverprofile=profile.cov ./... + go test -v -covermode=count -coverprofile=profile.cov.tmp ./... + cat profile.cov.tmp | grep -v /model.go > profile.cov # ignore generated model file .PHONY: fuzz fuzz: diff --git a/go.mod b/go.mod index d110234..c2a28da 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,17 @@ module github.com/spdx/tools-golang -go 1.13 +go 1.20 require ( github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 github.com/google/go-cmp v0.6.0 + github.com/pmezard/go-difflib v1.0.0 github.com/spdx/gordf v0.0.0-20201111095634-7098f93598fb github.com/stretchr/testify v1.9.0 sigs.k8s.io/yaml v1.4.0 ) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum index 3c8ec37..670b837 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,5 @@ github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 h1:aM1rlcoLz8y5B2r4tTLMiVTrMtpfY0O8EScKJxaSaEc= github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092/go.mod h1:rYqSE9HbjzpHTI74vwPvae4ZVYZd1lue2ta6xHPdblA= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -10,18 +9,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/spdx/gordf v0.0.0-20201111095634-7098f93598fb h1:bLo8hvc8XFm9J47r690TUKBzcjSWdJDxmjXJZ+/f92U= github.com/spdx/gordf v0.0.0-20201111095634-7098f93598fb/go.mod h1:uKWaldnbMnjsSAXRurWqqrdyZen1R7kxl8TkmWk2OyM= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= diff --git a/spdx/v3/v3_0/model.go b/spdx/v3/v3_0/model.go new file mode 100644 index 0000000..e1ca5e9 --- /dev/null +++ b/spdx/v3/v3_0/model.go @@ -0,0 +1,11778 @@ +// Code generated by -m. DO NOT EDIT. +// +// SPDX-License-Identifier: MIT + +package v3_0 + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "path" + "reflect" + "strings" +) + +// ldType is a 0-size data holder property type for type-level linked data +type ldType struct{} + +// ldContext is the holder for all known LD contexts and required definitions +type ldContext map[string]*serializationContext + +// RegisterTypes registers types to be used when serializing/deserialising documents +func (c ldContext) RegisterTypes(contextUrl string, types ...any) ldContext { + ctx := c[contextUrl] + if ctx == nil { + ctx = &serializationContext{ + contextUrl: contextUrl, + typeAlias: "type", // FIXME this needs to come from the LD context + iriToType: map[string]*typeContext{}, + typeToContext: map[reflect.Type]*typeContext{}, + } + c[contextUrl] = ctx + } + for _, typ := range types { + ctx.registerType(typ) + } + return c +} + +// IRIMap registers compact IRIs for the given type +func (c ldContext) IRIMap(contextUrl string, typ any, nameMap map[string]string) ldContext { + c.RegisterTypes(contextUrl) // ensure there is a context created + ctx := c[contextUrl] + + t := reflect.TypeOf(typ) + t = baseType(t) // types should be passed as pointers; we want the base types + tc := ctx.typeToContext[t] + if tc == nil { + ctx.registerType(typ) + tc = ctx.typeToContext[t] + } + for iri, compact := range nameMap { + tc.iriToName[iri] = compact + tc.nameToIri[compact] = iri + } + return c +} + +func (c ldContext) ToJSON(writer io.Writer, value any) error { + vals, err := c.toMaps(value) + if err != nil { + return err + } + enc := json.NewEncoder(writer) + enc.SetEscapeHTML(false) + return enc.Encode(vals) +} + +func (c ldContext) toMaps(o ...any) (values map[string]any, errors error) { + // the ld graph is referenced here + // traverse the go objects to output to the graph + builder := graphBuilder{ + ldc: c, + input: o, + ids: map[reflect.Value]string{}, + } + + var err error + var context *serializationContext + for _, o := range builder.input { + context, err = builder.add(o) + if err != nil { + return nil, err + } + } + + return map[string]any{ + ldContextProp: context.contextUrl, + ldGraphProp: builder.toGraph(), + }, nil +} + +func (c ldContext) FromJSON(reader io.Reader) ([]any, error) { + vals := map[string]any{} + dec := json.NewDecoder(reader) + err := dec.Decode(&vals) + if err != nil { + return nil, err + } + return c.FromMaps(vals) +} + +func (c ldContext) FromMaps(values map[string]any) ([]any, error) { + instances := map[string]reflect.Value{} + + var errs error + var graph []any + + context, _ := values[ldContextProp].(string) + currentContext := c[context] + if currentContext == nil { + return nil, fmt.Errorf("unknown document %s type: %v", ldContextProp, context) + } + + nodes, _ := values[ldGraphProp].([]any) + if nodes == nil { + return nil, fmt.Errorf("%s array not present in root object", ldGraphProp) + } + + // one pass to create all the instances + for _, node := range nodes { + _, err := c.getOrCreateInstance(currentContext, instances, anyType, node) + errs = appendErr(errs, err) + } + + // second pass to fill in all refs + for _, node := range nodes { + got, err := c.getOrCreateInstance(currentContext, instances, anyType, node) + errs = appendErr(errs, err) + if err == nil && got.IsValid() { + graph = append(graph, got.Interface()) + } + } + + return graph, errs +} + +func (c ldContext) getOrCreateInstance(currentContext *serializationContext, instances map[string]reflect.Value, expectedType reflect.Type, incoming any) (reflect.Value, error) { + if isPrimitive(expectedType) { + if convertedVal := convertTo(incoming, expectedType); convertedVal != emptyValue { + return convertedVal, nil + } + return emptyValue, fmt.Errorf("unable to convert incoming value to type %v: %+v", typeName(expectedType), incoming) + } + switch incoming := incoming.(type) { + case string: + instance := c.findById(currentContext, instances, incoming) + if instance != emptyValue { + return instance, nil + } + // not found: have a complex type with string indicates an IRI or other primitive + switch expectedType.Kind() { + case reflect.Pointer: + expectedType = expectedType.Elem() + if isPrimitive(expectedType) { + val, err := c.getOrCreateInstance(currentContext, instances, expectedType, incoming) + if err != nil { + return emptyValue, err + } + instance = reflect.New(expectedType) + instance.Elem().Set(val) + return instance, nil + } + if expectedType.Kind() == reflect.Struct { + return emptyValue, fmt.Errorf("unexpected pointer reference external IRI reference: %v", incoming) + } + fallthrough + case reflect.Struct: + instance = reflect.New(expectedType) + instance = instance.Elem() + err := c.setStructProps(currentContext, instances, instance, map[string]any{ + ldIDProp: incoming, + }) + return instance, err + case reflect.Interface: + // an IRI with an interface is a reference to an unknown type, so use the closest type + newType, found := c.findExternalReferenceType(currentContext, expectedType) + if found { + instance = reflect.New(newType) + // try to return the appropriately assignable instance + if !instance.Type().AssignableTo(expectedType) { + instance = instance.Elem() + } + err := c.setStructProps(currentContext, instances, instance, map[string]any{ + ldIDProp: incoming, + }) + return instance, err + } + return emptyValue, fmt.Errorf("unable to determine external reference type while populating %v for IRI reference: %v", typeName(expectedType), incoming) + default: + } + case map[string]any: + return c.getOrCreateFromMap(currentContext, instances, incoming) + } + return emptyValue, fmt.Errorf("unexpected data type: %#v", incoming) +} + +func convertTo(incoming any, typ reflect.Type) reflect.Value { + v := reflect.ValueOf(incoming) + if v.CanConvert(typ) { + return v.Convert(typ) + } + return emptyValue +} + +func (c ldContext) findById(_ *serializationContext, instances map[string]reflect.Value, incoming string) reflect.Value { + inst, ok := instances[incoming] + if ok { + return inst + } + return emptyValue +} + +func (c ldContext) getOrCreateFromMap(currentContext *serializationContext, instances map[string]reflect.Value, incoming map[string]any) (reflect.Value, error) { + typ, ok := incoming[ldTypeProp].(string) + if !ok && currentContext.typeAlias != "" { + typ, ok = incoming[currentContext.typeAlias].(string) + } + if !ok { + return emptyValue, fmt.Errorf("not a string") + } + + t, ok := currentContext.iriToType[typ] + if !ok { + return emptyValue, fmt.Errorf("don't have type: %v", typ) + } + + id, _ := incoming[ldIDProp].(string) + if id == "" && t.idProp != "" { + id, _ = incoming[t.idProp].(string) + } + inst, ok := instances[id] + if !ok { + inst = reflect.New(baseType(t.typ)) // New(T) returns *T + if id != "" { + // only set instance references when an ID is provided + instances[id] = inst + } + } + + // valid type, make a new one and fill it from the incoming maps + return inst, c.fill(currentContext, instances, inst, incoming) +} + +func (c ldContext) fill(currentContext *serializationContext, instances map[string]reflect.Value, instance reflect.Value, incoming any) error { + switch incoming := incoming.(type) { + case string: + inst := c.findById(currentContext, instances, incoming) + if inst != emptyValue { + return c.setValue(currentContext, instances, instance, inst) + } + // should be an incoming ID if string + return c.setValue(currentContext, instances, instance, map[string]any{ + ldIDProp: incoming, + }) + case map[string]any: + return c.setStructProps(currentContext, instances, instance, incoming) + } + return fmt.Errorf("unsupported incoming data type: %#v attempting to set instance: %#v", incoming, instance.Interface()) +} + +func (c ldContext) setValue(currentContext *serializationContext, instances map[string]reflect.Value, target reflect.Value, incoming any) error { + var errs error + typ := target.Type() + switch typ.Kind() { + case reflect.Slice: + switch incoming := incoming.(type) { + case []any: + return c.setSliceValue(currentContext, instances, target, incoming) + } + // try mapping a single value to an incoming slice + return c.setValue(currentContext, instances, target, []any{incoming}) + case reflect.Struct: + switch incoming := incoming.(type) { + case map[string]any: + return c.setStructProps(currentContext, instances, target, incoming) + case string: + // named individuals just need an object with the iri set + return c.setStructProps(currentContext, instances, target, map[string]any{ + ldIDProp: incoming, + }) + } + case reflect.Interface, reflect.Pointer: + switch incoming := incoming.(type) { + case string, map[string]any: + inst, err := c.getOrCreateInstance(currentContext, instances, typ, incoming) + errs = appendErr(errs, err) + if inst != emptyValue { + target.Set(inst) + return nil + } + } + default: + if newVal := convertTo(incoming, typ); newVal != emptyValue { + target.Set(newVal) + } else { + errs = appendErr(errs, fmt.Errorf("unable to convert %#v to %s, dropping", incoming, typeName(typ))) + } + } + return nil +} + +func (c ldContext) setStructProps(currentContext *serializationContext, instances map[string]reflect.Value, instance reflect.Value, incoming map[string]any) error { + var errs error + typ := instance.Type() + for typ.Kind() == reflect.Pointer { + instance = instance.Elem() + typ = instance.Type() + } + if typ.Kind() != reflect.Struct { + return fmt.Errorf("unable to set struct properties on non-struct type: %#v", instance.Interface()) + } + tc := currentContext.typeToContext[typ] + for i := 0; i < typ.NumField(); i++ { + field := typ.Field(i) + if skipField(field) { + continue + } + fieldVal := instance.Field(i) + + propIRI := field.Tag.Get(propIriTag) + if propIRI == "" { + continue + } + incomingVal, ok := incoming[propIRI] + if !ok { + compactIRI := field.Tag.Get(propIriCompactTag) + if compactIRI != "" { + incomingVal, ok = incoming[compactIRI] + } + } + if !ok { + continue + } + // don't set blank node IDs, these will be regenerated on output + if propIRI == ldIDProp { + if tc != nil { + if str, ok := incomingVal.(string); ok { + if fullIRI, ok := tc.nameToIri[str]; ok { + incomingVal = fullIRI + } + } + } + if isBlankNodeID(incomingVal) { + continue + } + } + errs = appendErr(errs, c.setValue(currentContext, instances, fieldVal, incomingVal)) + } + return errs +} + +func (c ldContext) setSliceValue(currentContext *serializationContext, instances map[string]reflect.Value, target reflect.Value, incoming []any) error { + var errs error + sliceType := target.Type() + if sliceType.Kind() != reflect.Slice { + return fmt.Errorf("expected slice, got: %#v", target) + } + sz := len(incoming) + if sz > 0 { + elemType := sliceType.Elem() + newSlice := reflect.MakeSlice(sliceType, 0, sz) + for i := 0; i < sz; i++ { + incomingValue := incoming[i] + if incomingValue == nil { + continue // don't allow null values + } + newItemValue, err := c.getOrCreateInstance(currentContext, instances, elemType, incomingValue) + errs = appendErr(errs, err) + if newItemValue != emptyValue { + // validate we can actually set the type + if newItemValue.Type().AssignableTo(elemType) { + newSlice = reflect.Append(newSlice, newItemValue) + } + } + } + target.Set(newSlice) + } + return errs +} + +func (c ldContext) findExternalReferenceType(currentContext *serializationContext, expectedType reflect.Type) (reflect.Type, bool) { + tc := currentContext.typeToContext[expectedType] + if tc != nil { + return tc.typ, true + } + bestMatch := anyType + for t := range currentContext.typeToContext { + if t.Kind() != reflect.Struct { + continue + } + // the type with the fewest fields assignable to the target is a good candidate to be an abstract type + if reflect.PointerTo(t).AssignableTo(expectedType) && (bestMatch == anyType || bestMatch.NumField() > t.NumField()) { + bestMatch = t + } + } + if bestMatch != anyType { + currentContext.typeToContext[expectedType] = &typeContext{ + typ: bestMatch, + } + return bestMatch, true + } + return anyType, false +} + +func skipField(field reflect.StructField) bool { + return field.Type.Size() == 0 +} + +func typeName(t reflect.Type) string { + switch { + case isPointer(t): + return "*" + typeName(t.Elem()) + case isSlice(t): + return "[]" + typeName(t.Elem()) + case isMap(t): + return "map[" + typeName(t.Key()) + "]" + typeName(t.Elem()) + case isPrimitive(t): + return t.Name() + } + return path.Base(t.PkgPath()) + "." + t.Name() +} + +func isSlice(t reflect.Type) bool { + return t.Kind() == reflect.Slice +} + +func isMap(t reflect.Type) bool { + return t.Kind() == reflect.Map +} + +func isPointer(t reflect.Type) bool { + return t.Kind() == reflect.Pointer +} + +func isPrimitive(t reflect.Type) bool { + switch t.Kind() { + case reflect.String, + reflect.Int, + reflect.Int8, + reflect.Int16, + reflect.Int32, + reflect.Int64, + reflect.Uint, + reflect.Uint8, + reflect.Uint16, + reflect.Uint32, + reflect.Uint64, + reflect.Float32, + reflect.Float64, + reflect.Bool: + return true + default: + return false + } +} + +const ( + ldIDProp = "@id" + ldTypeProp = "@type" + ldContextProp = "@context" + ldGraphProp = "@graph" + typeIriTag = "iri" + typeIriCompactTag = "iri-compact" + propIriTag = "iri" + propIriCompactTag = "iri-compact" + typeIdPropTag = "id-prop" + propIsRequiredTag = "required" +) + +var ( + emptyValue reflect.Value + anyType = reflect.TypeOf((*any)(nil)).Elem() +) + +type typeContext struct { + typ reflect.Type + iri string + compact string + idProp string + iriToName map[string]string + nameToIri map[string]string +} + +type serializationContext struct { + contextUrl string + typeAlias string + iriToType map[string]*typeContext + typeToContext map[reflect.Type]*typeContext +} + +func fieldByType[T any](t reflect.Type) (reflect.StructField, bool) { + var v T + typ := reflect.TypeOf(v) + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Type == typ { + return f, true + } + } + return reflect.StructField{}, false +} + +func (m *serializationContext) registerType(instancePointer any) { + t := reflect.TypeOf(instancePointer) + t = baseType(t) // types should be passed as pointers; we want the base types + + tc := m.typeToContext[t] + if tc != nil { + return // already registered + } + tc = &typeContext{ + typ: t, + iriToName: map[string]string{}, + nameToIri: map[string]string{}, + } + meta, ok := fieldByType[ldType](t) + if ok { + tc.iri = meta.Tag.Get(typeIriTag) + tc.compact = meta.Tag.Get(typeIriCompactTag) + tc.idProp = meta.Tag.Get(typeIdPropTag) + } + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if !isIdField(f) { + continue + } + compactIdProp := f.Tag.Get(typeIriCompactTag) + if compactIdProp != "" { + tc.idProp = compactIdProp + } + } + m.iriToType[tc.iri] = tc + m.iriToType[tc.compact] = tc + m.typeToContext[t] = tc +} + +// appendErr appends errors, flattening joined errors +func appendErr(err error, errs ...error) error { + if joined, ok := err.(interface{ Unwrap() []error }); ok { + return errors.Join(append(joined.Unwrap(), errs...)...) + } + if err == nil { + return errors.Join(errs...) + } + return errors.Join(append([]error{err}, errs...)...) +} + +// baseType returns the base type if this is a pointer or interface +func baseType(t reflect.Type) reflect.Type { + switch t.Kind() { + case reflect.Pointer, reflect.Interface: + return baseType(t.Elem()) + default: + return t + } +} + +// isBlankNodeID indicates this is a blank node ID, e.g. _:CreationInfo-1 +func isBlankNodeID(val any) bool { + if val, ok := val.(string); ok { + return strings.HasPrefix(val, "_:") + } + return false +} + +type graphBuilder struct { + ldc ldContext + input []any + graph []any + idPrefix string + nextID map[reflect.Type]int + ids map[reflect.Value]string +} + +func (b *graphBuilder) toGraph() []any { + return b.graph +} + +func (b *graphBuilder) add(o any) (context *serializationContext, err error) { + v := reflect.ValueOf(o) + if v.Type().Kind() != reflect.Pointer { + if v.CanAddr() { + v = v.Addr() + } else { + newV := reflect.New(v.Type()) + newV.Elem().Set(v) + v = newV + } + } + val, err := b.toValue(v) + // objects with IDs get added to the graph during object traversal + if _, isTopLevel := val.(map[string]any); isTopLevel && err == nil { + b.graph = append(b.graph, val) + } + ctx := b.findContext(v.Type()) + return ctx, err +} + +func (b *graphBuilder) findContext(t reflect.Type) *serializationContext { + t = baseType(t) // object may be a pointer, but we want the base types + for _, context := range b.ldc { + for _, typ := range context.iriToType { + if t == typ.typ { + return context + } + } + } + return nil +} + +func (b *graphBuilder) toStructMap(v reflect.Value) (value any, err error) { + t := v.Type() + if t.Kind() != reflect.Struct { + return nil, fmt.Errorf("expected struct type, got: %v", stringify(v)) + } + + meta, ok := fieldByType[ldType](t) + if !ok { + return nil, fmt.Errorf("struct does not have LDType metadata: %v", stringify(v)) + } + + iri := meta.Tag.Get(typeIriCompactTag) + if iri == "" { + iri = meta.Tag.Get(typeIriTag) + } + + context := b.findContext(t) + tc := context.typeToContext[t] + + typeProp := ldTypeProp + if context.typeAlias != "" { + typeProp = context.typeAlias + } + out := map[string]any{ + typeProp: iri, + } + + hasValues := false + id := "" + + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if skipField(f) { + continue + } + + prop := f.Tag.Get(propIriCompactTag) + if prop == "" { + prop = f.Tag.Get(propIriTag) + } + + fieldV := v.Field(i) + + if !isRequired(f) && isEmpty(fieldV) { + continue + } + + val, err := b.toValue(fieldV) + if err != nil { + return nil, err + } + + if isIdField(f) { + id, _ = val.(string) + if id == "" { + // if this struct does not have an ID set, and does not have multiple references, + // it is output inline, it does not need an ID, but does need an ID + // when it is moved to the top-level graph and referenced elsewhere + if !b.hasMultipleReferences(v.Addr()) { + continue + } + val, _ = b.ensureID(v.Addr()) + } else if tc != nil { + // compact named IRIs + if _, ok := tc.iriToName[id]; ok { + id = tc.iriToName[id] + } + } + } else { + hasValues = true + } + + out[prop] = val + } + + if id != "" && !hasValues { + // if we _only_ have an ID set and no other values, consider this a named individual + return id, nil + } + + return out, nil +} + +func isIdField(f reflect.StructField) bool { + return f.Tag.Get(propIriTag) == ldIDProp +} + +func isEmpty(v reflect.Value) bool { + return !v.IsValid() || v.IsZero() +} + +func isRequired(f reflect.StructField) bool { + if isIdField(f) { + return true + } + required := f.Tag.Get(propIsRequiredTag) + return required != "" && !strings.EqualFold(required, "false") +} + +func (b *graphBuilder) toValue(v reflect.Value) (any, error) { + if !v.IsValid() { + return nil, nil + } + + switch v.Type().Kind() { + case reflect.Interface: + return b.toValue(v.Elem()) + case reflect.Pointer: + if v.IsNil() { + return nil, nil + } + if !b.hasMultipleReferences(v) { + return b.toValue(v.Elem()) + } + return b.ensureID(v) + case reflect.Struct: + return b.toStructMap(v) + case reflect.Slice: + var out []any + for i := 0; i < v.Len(); i++ { + val, err := b.toValue(v.Index(i)) + if err != nil { + return nil, err + } + out = append(out, val) + } + return out, nil + case reflect.String: + return v.String(), nil + default: + if v.CanInterface() { + return v.Interface(), nil + } + return nil, fmt.Errorf("unable to convert value to maps: %v", stringify(v)) + } +} + +func (b *graphBuilder) ensureID(ptr reflect.Value) (string, error) { + if ptr.Type().Kind() != reflect.Pointer { + return "", fmt.Errorf("expected pointer, got: %v", stringify(ptr)) + } + if id, ok := b.ids[ptr]; ok { + return id, nil + } + + v := ptr.Elem() + t := v.Type() + + id, err := b.getID(v) + if err != nil { + return "", err + } + if id == "" { + if b.nextID == nil { + b.nextID = map[reflect.Type]int{} + } + nextID := b.nextID[t] + 1 + b.nextID[t] = nextID + id = fmt.Sprintf("_:%s-%v", t.Name(), nextID) + } + b.ids[ptr] = id + val, err := b.toValue(v) + if err != nil { + return "", err + } + b.graph = append(b.graph, val) + return id, nil +} + +func (b *graphBuilder) getID(v reflect.Value) (string, error) { + t := v.Type() + if t.Kind() != reflect.Struct { + return "", fmt.Errorf("expected struct, got: %v", stringify(v)) + } + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if isIdField(f) { + fv := v.Field(i) + if f.Type.Kind() != reflect.String { + return "", fmt.Errorf("invalid type for ID field %v in: %v", f, stringify(v)) + } + return fv.String(), nil + } + } + return "", nil +} + +// hasMultipleReferences returns true if the ptr value has multiple references in the input slice +func (b *graphBuilder) hasMultipleReferences(ptr reflect.Value) bool { + if !ptr.IsValid() { + return false + } + count := 0 + visited := map[reflect.Value]struct{}{} + for _, v := range b.input { + count += refCountR(ptr, visited, reflect.ValueOf(v)) + if count > 1 { + return true + } + } + return false +} + +// refCount returns the reference count of the value in the container object +func refCount(find any, container any) int { + visited := map[reflect.Value]struct{}{} + ptrV := reflect.ValueOf(find) + if !ptrV.IsValid() { + return 0 + } + return refCountR(ptrV, visited, reflect.ValueOf(container)) +} + +// refCountR recursively searches for the value, find, in the value v +func refCountR(find reflect.Value, visited map[reflect.Value]struct{}, v reflect.Value) int { + if find.Equal(v) { + return 1 + } + if !v.IsValid() { + return 0 + } + if _, ok := visited[v]; ok { + return 0 + } + visited[v] = struct{}{} + switch v.Kind() { + case reflect.Interface: + return refCountR(find, visited, v.Elem()) + case reflect.Pointer: + if v.IsNil() { + return 0 + } + return refCountR(find, visited, v.Elem()) + case reflect.Struct: + count := 0 + for i := 0; i < v.NumField(); i++ { + count += refCountR(find, visited, v.Field(i)) + } + return count + case reflect.Slice: + count := 0 + for i := 0; i < v.Len(); i++ { + count += refCountR(find, visited, v.Index(i)) + } + return count + default: + return 0 + } +} + +func stringify(o any) string { + if v, ok := o.(reflect.Value); ok { + if !v.IsValid() { + return "invalid value" + } + if !v.IsZero() && v.CanInterface() { + o = v.Interface() + } + } + return fmt.Sprintf("%#v", o) +} + +type IEnergyConsumption interface { + + // GetFinetuningEnergyConsumption specifies the amount of energy consumed when finetuning the AI model that is + // being used in the AI system. + GetFinetuningEnergyConsumption() []IEnergyConsumptionDescription + + SetFinetuningEnergyConsumption(...IEnergyConsumptionDescription) + + // GetInferenceEnergyConsumption specifies the amount of energy consumed during inference time by an AI model + // that is being used in the AI system. + GetInferenceEnergyConsumption() []IEnergyConsumptionDescription + + SetInferenceEnergyConsumption(...IEnergyConsumptionDescription) + + // GetTrainingEnergyConsumption specifies the amount of energy consumed when training the AI model that is + // being used in the AI system. + GetTrainingEnergyConsumption() []IEnergyConsumptionDescription + + SetTrainingEnergyConsumption(...IEnergyConsumptionDescription) +} + +type EnergyConsumption struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/EnergyConsumption" iri-compact:"ai_EnergyConsumption"` + + Iri string `iri:"@id"` + + // FinetuningEnergyConsumption specifies the amount of energy consumed when finetuning the AI model that is + // being used in the AI system. + FinetuningEnergyConsumption []IEnergyConsumptionDescription `iri:"https://spdx.org/rdf/3.0.0/terms/AI/finetuningEnergyConsumption" iri-compact:"ai_finetuningEnergyConsumption"` + // InferenceEnergyConsumption specifies the amount of energy consumed during inference time by an AI model + // that is being used in the AI system. + InferenceEnergyConsumption []IEnergyConsumptionDescription `iri:"https://spdx.org/rdf/3.0.0/terms/AI/inferenceEnergyConsumption" iri-compact:"ai_inferenceEnergyConsumption"` + // TrainingEnergyConsumption specifies the amount of energy consumed when training the AI model that is + // being used in the AI system. + TrainingEnergyConsumption []IEnergyConsumptionDescription `iri:"https://spdx.org/rdf/3.0.0/terms/AI/trainingEnergyConsumption" iri-compact:"ai_trainingEnergyConsumption"` +} + +func NewEnergyConsumption() IEnergyConsumption { + return &EnergyConsumption{} +} + +func (o *EnergyConsumption) GetFinetuningEnergyConsumption() []IEnergyConsumptionDescription { + return o.FinetuningEnergyConsumption +} +func (o *EnergyConsumption) SetFinetuningEnergyConsumption(v ...IEnergyConsumptionDescription) { + o.FinetuningEnergyConsumption = v +} +func (o *EnergyConsumption) GetInferenceEnergyConsumption() []IEnergyConsumptionDescription { + return o.InferenceEnergyConsumption +} +func (o *EnergyConsumption) SetInferenceEnergyConsumption(v ...IEnergyConsumptionDescription) { + o.InferenceEnergyConsumption = v +} +func (o *EnergyConsumption) GetTrainingEnergyConsumption() []IEnergyConsumptionDescription { + return o.TrainingEnergyConsumption +} +func (o *EnergyConsumption) SetTrainingEnergyConsumption(v ...IEnergyConsumptionDescription) { + o.TrainingEnergyConsumption = v +} + +type IEnergyConsumptionDescription interface { + + // GetEnergyQuantity represents the energy quantity. + GetEnergyQuantity() float64 + + SetEnergyQuantity(float64) + + // GetEnergyUnit specifies the unit in which energy is measured. + GetEnergyUnit() EnergyUnitType + + SetEnergyUnit(EnergyUnitType) +} + +type EnergyConsumptionDescription struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/EnergyConsumptionDescription" iri-compact:"ai_EnergyConsumptionDescription"` + + Iri string `iri:"@id"` + + // EnergyQuantity represents the energy quantity. + EnergyQuantity float64 `iri:"https://spdx.org/rdf/3.0.0/terms/AI/energyQuantity" iri-compact:"ai_energyQuantity"` + // EnergyUnit specifies the unit in which energy is measured. + EnergyUnit EnergyUnitType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/energyUnit" iri-compact:"ai_energyUnit"` +} + +func NewEnergyConsumptionDescription() IEnergyConsumptionDescription { + return &EnergyConsumptionDescription{} +} + +func (o *EnergyConsumptionDescription) GetEnergyQuantity() float64 { + return o.EnergyQuantity +} +func (o *EnergyConsumptionDescription) SetEnergyQuantity(v float64) { + o.EnergyQuantity = v +} +func (o *EnergyConsumptionDescription) GetEnergyUnit() EnergyUnitType { + return o.EnergyUnit +} +func (o *EnergyConsumptionDescription) SetEnergyUnit(v EnergyUnitType) { + o.EnergyUnit = v +} + +type EnergyUnitType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType" iri-compact:"ai_EnergyUnitType"` + + Iri string `iri:"@id"` +} + +var ( + EnergyUnitType_KilowattHour = EnergyUnitType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType/kilowattHour"} + EnergyUnitType_Megajoule = EnergyUnitType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType/megajoule"} + EnergyUnitType_Other = EnergyUnitType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType/other"} +) + +type SafetyRiskAssessmentType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType" iri-compact:"ai_SafetyRiskAssessmentType"` + + Iri string `iri:"@id"` +} + +var ( + SafetyRiskAssessmentType_High = SafetyRiskAssessmentType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/high"} + SafetyRiskAssessmentType_Low = SafetyRiskAssessmentType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/low"} + SafetyRiskAssessmentType_Medium = SafetyRiskAssessmentType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/medium"} + SafetyRiskAssessmentType_Serious = SafetyRiskAssessmentType{Iri: "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/serious"} +) + +type AnnotationType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/AnnotationType" iri-compact:"AnnotationType"` + + Iri string `iri:"@id"` +} + +var ( + AnnotationType_Other = AnnotationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/AnnotationType/other"} + AnnotationType_Review = AnnotationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/AnnotationType/review"} +) + +type ICreationInfo interface { + + // GetComment provide consumers with comments by the creator of the Element about the + // Element. + GetComment() string + + SetComment(string) + + // GetCreated identifies when the Element was originally created. + GetCreated() string + + SetCreated(string) + + // GetCreatedBy identifies who or what created the Element. + GetCreatedBy() []IAgent + + SetCreatedBy(...IAgent) + + // GetCreatedUsing identifies the tooling that was used during the creation of the Element. + GetCreatedUsing() []ITool + + SetCreatedUsing(...ITool) + + // GetSpecVersion provides a reference number that can be used to understand how to parse and interpret an Element. + GetSpecVersion() string + + SetSpecVersion(string) +} + +type CreationInfo struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/CreationInfo" iri-compact:"CreationInfo"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // Created identifies when the Element was originally created. + Created string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/created" iri-compact:"created"` + // CreatedBy identifies who or what created the Element. + CreatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/createdBy" iri-compact:"createdBy"` + // CreatedUsing identifies the tooling that was used during the creation of the Element. + CreatedUsing []ITool `iri:"https://spdx.org/rdf/3.0.0/terms/Core/createdUsing" iri-compact:"createdUsing"` + // SpecVersion provides a reference number that can be used to understand how to parse and interpret an Element. + SpecVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/specVersion" iri-compact:"specVersion"` +} + +func NewCreationInfo() ICreationInfo { + return &CreationInfo{} +} + +func (o *CreationInfo) GetComment() string { + return o.Comment +} +func (o *CreationInfo) SetComment(v string) { + o.Comment = v +} +func (o *CreationInfo) GetCreated() string { + return o.Created +} +func (o *CreationInfo) SetCreated(v string) { + o.Created = v +} +func (o *CreationInfo) GetCreatedBy() []IAgent { + return o.CreatedBy +} +func (o *CreationInfo) SetCreatedBy(v ...IAgent) { + o.CreatedBy = v +} +func (o *CreationInfo) GetCreatedUsing() []ITool { + return o.CreatedUsing +} +func (o *CreationInfo) SetCreatedUsing(v ...ITool) { + o.CreatedUsing = v +} +func (o *CreationInfo) GetSpecVersion() string { + return o.SpecVersion +} +func (o *CreationInfo) SetSpecVersion(v string) { + o.SpecVersion = v +} + +type IDictionaryEntry interface { + + // GetKey a key used in a generic key-value pair. + GetKey() string + + SetKey(string) + + // GetValue a value used in a generic key-value pair. + GetValue() string + + SetValue(string) +} + +type DictionaryEntry struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/DictionaryEntry" iri-compact:"DictionaryEntry"` + + Iri string `iri:"@id"` + + // Key a key used in a generic key-value pair. + Key string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/key" iri-compact:"key"` + // Value a value used in a generic key-value pair. + Value string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/value" iri-compact:"value"` +} + +func NewDictionaryEntry() IDictionaryEntry { + return &DictionaryEntry{} +} + +func (o *DictionaryEntry) GetKey() string { + return o.Key +} +func (o *DictionaryEntry) SetKey(v string) { + o.Key = v +} +func (o *DictionaryEntry) GetValue() string { + return o.Value +} +func (o *DictionaryEntry) SetValue(v string) { + o.Value = v +} + +type IElement interface { + + // GetSpdxId identifier property + GetSpdxId() string + + SetSpdxId(string) + + // GetComment provide consumers with comments by the creator of the Element about the + // Element. + GetComment() string + + SetComment(string) + + // GetCreationInfo provides information about the creation of the Element. + GetCreationInfo() ICreationInfo + + SetCreationInfo(ICreationInfo) + + // GetDescription provides a detailed description of the Element. + GetDescription() string + + SetDescription(string) + + // GetExtensions specifies an Extension characterization of some aspect of an Element. + GetExtensions() []IExtension + + SetExtensions(...IExtension) + + // GetExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + GetExternalIdentifiers() []IExternalIdentifier + + SetExternalIdentifiers(...IExternalIdentifier) + + // GetExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + GetExternalRefs() []IExternalRef + + SetExternalRefs(...IExternalRef) + + // GetName identifies the name of an Element as designated by the creator. + GetName() string + + SetName(string) + + // GetSummary a short description of an Element. + GetSummary() string + + SetSummary(string) + + // GetVerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + GetVerifiedUsing() []IIntegrityMethod + + SetVerifiedUsing(...IIntegrityMethod) +} + +type Element struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Element" iri-compact:"Element" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func (o *Element) GetSpdxId() string { + return o.SpdxId +} +func (o *Element) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Element) GetComment() string { + return o.Comment +} +func (o *Element) SetComment(v string) { + o.Comment = v +} +func (o *Element) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Element) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Element) GetDescription() string { + return o.Description +} +func (o *Element) SetDescription(v string) { + o.Description = v +} +func (o *Element) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Element) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Element) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Element) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Element) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Element) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Element) GetName() string { + return o.Name +} +func (o *Element) SetName(v string) { + o.Name = v +} +func (o *Element) GetSummary() string { + return o.Summary +} +func (o *Element) SetSummary(v string) { + o.Summary = v +} +func (o *Element) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Element) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type IElementCollection interface { + IElement + + // GetElements refers to one or more Elements that are part of an ElementCollection. + GetElements() []IElement + + SetElements(...IElement) + + // GetProfileConformance describes one a profile which the creator of this ElementCollection intends to + // conform to. + GetProfileConformance() []ProfileIdentifierType + + SetProfileConformance(...ProfileIdentifierType) + + // GetRootElements this property is used to denote the root Element(s) of a tree of elements contained in a BOM. + GetRootElements() []IElement + + SetRootElements(...IElement) +} + +type ElementCollection struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ElementCollection" iri-compact:"ElementCollection" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Elements refers to one or more Elements that are part of an ElementCollection. + Elements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/element" iri-compact:"element"` + // ProfileConformance describes one a profile which the creator of this ElementCollection intends to + // conform to. + ProfileConformance []ProfileIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/profileConformance" iri-compact:"profileConformance"` + // RootElements this property is used to denote the root Element(s) of a tree of elements contained in a BOM. + RootElements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/rootElement" iri-compact:"rootElement"` +} + +func (o *ElementCollection) GetSpdxId() string { + return o.SpdxId +} +func (o *ElementCollection) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *ElementCollection) GetComment() string { + return o.Comment +} +func (o *ElementCollection) SetComment(v string) { + o.Comment = v +} +func (o *ElementCollection) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *ElementCollection) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *ElementCollection) GetDescription() string { + return o.Description +} +func (o *ElementCollection) SetDescription(v string) { + o.Description = v +} +func (o *ElementCollection) GetExtensions() []IExtension { + return o.Extensions +} +func (o *ElementCollection) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *ElementCollection) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *ElementCollection) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *ElementCollection) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *ElementCollection) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *ElementCollection) GetName() string { + return o.Name +} +func (o *ElementCollection) SetName(v string) { + o.Name = v +} +func (o *ElementCollection) GetSummary() string { + return o.Summary +} +func (o *ElementCollection) SetSummary(v string) { + o.Summary = v +} +func (o *ElementCollection) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ElementCollection) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *ElementCollection) GetElements() []IElement { + return o.Elements +} +func (o *ElementCollection) SetElements(v ...IElement) { + o.Elements = v +} +func (o *ElementCollection) GetProfileConformance() []ProfileIdentifierType { + return o.ProfileConformance +} +func (o *ElementCollection) SetProfileConformance(v ...ProfileIdentifierType) { + o.ProfileConformance = v +} +func (o *ElementCollection) GetRootElements() []IElement { + return o.RootElements +} +func (o *ElementCollection) SetRootElements(v ...IElement) { + o.RootElements = v +} + +type IExternalIdentifier interface { + + // GetComment provide consumers with comments by the creator of the Element about the + // Element. + GetComment() string + + SetComment(string) + + // GetExternalIdentifierType specifies the type of the external identifier. + GetExternalIdentifierType() ExternalIdentifierType + + SetExternalIdentifierType(ExternalIdentifierType) + + // GetIdentifier uniquely identifies an external element. + GetIdentifier() string + + SetIdentifier(string) + + // GetIdentifierLocator provides the location for more information regarding an external identifier. + GetIdentifierLocator() []string + + SetIdentifierLocator(...string) + + // GetIssuingAuthority an entity that is authorized to issue identification credentials. + GetIssuingAuthority() string + + SetIssuingAuthority(string) +} + +type ExternalIdentifier struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifier" iri-compact:"ExternalIdentifier"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // ExternalIdentifierType specifies the type of the external identifier. + ExternalIdentifierType ExternalIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifierType" iri-compact:"externalIdentifierType"` + // Identifier uniquely identifies an external element. + Identifier string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/identifier" iri-compact:"identifier"` + // IdentifierLocator provides the location for more information regarding an external identifier. + IdentifierLocator []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/identifierLocator" iri-compact:"identifierLocator"` + // IssuingAuthority an entity that is authorized to issue identification credentials. + IssuingAuthority string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/issuingAuthority" iri-compact:"issuingAuthority"` +} + +func NewExternalIdentifier() IExternalIdentifier { + return &ExternalIdentifier{} +} + +func (o *ExternalIdentifier) GetComment() string { + return o.Comment +} +func (o *ExternalIdentifier) SetComment(v string) { + o.Comment = v +} +func (o *ExternalIdentifier) GetExternalIdentifierType() ExternalIdentifierType { + return o.ExternalIdentifierType +} +func (o *ExternalIdentifier) SetExternalIdentifierType(v ExternalIdentifierType) { + o.ExternalIdentifierType = v +} +func (o *ExternalIdentifier) GetIdentifier() string { + return o.Identifier +} +func (o *ExternalIdentifier) SetIdentifier(v string) { + o.Identifier = v +} +func (o *ExternalIdentifier) GetIdentifierLocator() []string { + return o.IdentifierLocator +} +func (o *ExternalIdentifier) SetIdentifierLocator(v ...string) { + o.IdentifierLocator = v +} +func (o *ExternalIdentifier) GetIssuingAuthority() string { + return o.IssuingAuthority +} +func (o *ExternalIdentifier) SetIssuingAuthority(v string) { + o.IssuingAuthority = v +} + +type ExternalIdentifierType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType" iri-compact:"ExternalIdentifierType"` + + Iri string `iri:"@id"` +} + +var ( + ExternalIdentifierType_Cpe22 = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/cpe22"} + ExternalIdentifierType_Cpe23 = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/cpe23"} + ExternalIdentifierType_Cve = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/cve"} + ExternalIdentifierType_Email = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/email"} + ExternalIdentifierType_Gitoid = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/gitoid"} + ExternalIdentifierType_Other = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/other"} + ExternalIdentifierType_PackageUrl = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/packageUrl"} + ExternalIdentifierType_SecurityOther = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/securityOther"} + ExternalIdentifierType_Swhid = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/swhid"} + ExternalIdentifierType_Swid = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/swid"} + ExternalIdentifierType_UrlScheme = ExternalIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/urlScheme"} +) + +type IExternalMap interface { + + // GetDefiningArtifact artifact representing a serialization instance of SPDX data containing the + // definition of a particular Element. + GetDefiningArtifact() IArtifact + + SetDefiningArtifact(IArtifact) + + // GetExternalSpdxId identifies an external Element used within a Document but defined external to + // that Document. + GetExternalSpdxId() string + + SetExternalSpdxId(string) + + // GetLocationHint provides an indication of where to retrieve an external Element. + GetLocationHint() string + + SetLocationHint(string) + + // GetVerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + GetVerifiedUsing() []IIntegrityMethod + + SetVerifiedUsing(...IIntegrityMethod) +} + +type ExternalMap struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ExternalMap" iri-compact:"ExternalMap"` + + Iri string `iri:"@id"` + + // DefiningArtifact artifact representing a serialization instance of SPDX data containing the + // definition of a particular Element. + DefiningArtifact IArtifact `iri:"https://spdx.org/rdf/3.0.0/terms/Core/definingArtifact" iri-compact:"definingArtifact"` + // ExternalSpdxId identifies an external Element used within a Document but defined external to + // that Document. + ExternalSpdxId string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalSpdxId" iri-compact:"externalSpdxId"` + // LocationHint provides an indication of where to retrieve an external Element. + LocationHint string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/locationHint" iri-compact:"locationHint"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewExternalMap() IExternalMap { + return &ExternalMap{} +} + +func (o *ExternalMap) GetDefiningArtifact() IArtifact { + return o.DefiningArtifact +} +func (o *ExternalMap) SetDefiningArtifact(v IArtifact) { + o.DefiningArtifact = v +} +func (o *ExternalMap) GetExternalSpdxId() string { + return o.ExternalSpdxId +} +func (o *ExternalMap) SetExternalSpdxId(v string) { + o.ExternalSpdxId = v +} +func (o *ExternalMap) GetLocationHint() string { + return o.LocationHint +} +func (o *ExternalMap) SetLocationHint(v string) { + o.LocationHint = v +} +func (o *ExternalMap) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ExternalMap) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type IExternalRef interface { + + // GetComment provide consumers with comments by the creator of the Element about the + // Element. + GetComment() string + + SetComment(string) + + // GetContentType specifies the media type of an Element or Property. + GetContentType() string + + SetContentType(string) + + // GetExternalRefType specifies the type of the external reference. + GetExternalRefType() ExternalRefType + + SetExternalRefType(ExternalRefType) + + // GetLocator provides the location of an external reference. + GetLocator() []string + + SetLocator(...string) +} + +type ExternalRef struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ExternalRef" iri-compact:"ExternalRef"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // ContentType specifies the media type of an Element or Property. + ContentType string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/contentType" iri-compact:"contentType"` + // ExternalRefType specifies the type of the external reference. + ExternalRefType ExternalRefType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRefType" iri-compact:"externalRefType"` + // Locator provides the location of an external reference. + Locator []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/locator" iri-compact:"locator"` +} + +func NewExternalRef() IExternalRef { + return &ExternalRef{} +} + +func (o *ExternalRef) GetComment() string { + return o.Comment +} +func (o *ExternalRef) SetComment(v string) { + o.Comment = v +} +func (o *ExternalRef) GetContentType() string { + return o.ContentType +} +func (o *ExternalRef) SetContentType(v string) { + o.ContentType = v +} +func (o *ExternalRef) GetExternalRefType() ExternalRefType { + return o.ExternalRefType +} +func (o *ExternalRef) SetExternalRefType(v ExternalRefType) { + o.ExternalRefType = v +} +func (o *ExternalRef) GetLocator() []string { + return o.Locator +} +func (o *ExternalRef) SetLocator(v ...string) { + o.Locator = v +} + +type ExternalRefType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType" iri-compact:"ExternalRefType"` + + Iri string `iri:"@id"` +} + +var ( + ExternalRefType_AltDownloadLocation = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/altDownloadLocation"} + ExternalRefType_AltWebPage = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/altWebPage"} + ExternalRefType_BinaryArtifact = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/binaryArtifact"} + ExternalRefType_Bower = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/bower"} + ExternalRefType_BuildMeta = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/buildMeta"} + ExternalRefType_BuildSystem = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/buildSystem"} + ExternalRefType_CertificationReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/certificationReport"} + ExternalRefType_Chat = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/chat"} + ExternalRefType_ComponentAnalysisReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/componentAnalysisReport"} + ExternalRefType_Cwe = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/cwe"} + ExternalRefType_Documentation = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/documentation"} + ExternalRefType_DynamicAnalysisReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/dynamicAnalysisReport"} + ExternalRefType_EolNotice = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/eolNotice"} + ExternalRefType_ExportControlAssessment = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/exportControlAssessment"} + ExternalRefType_Funding = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/funding"} + ExternalRefType_IssueTracker = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/issueTracker"} + ExternalRefType_License = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/license"} + ExternalRefType_MailingList = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/mailingList"} + ExternalRefType_MavenCentral = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/mavenCentral"} + ExternalRefType_Metrics = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/metrics"} + ExternalRefType_Npm = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/npm"} + ExternalRefType_Nuget = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/nuget"} + ExternalRefType_Other = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/other"} + ExternalRefType_PrivacyAssessment = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/privacyAssessment"} + ExternalRefType_ProductMetadata = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/productMetadata"} + ExternalRefType_PurchaseOrder = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/purchaseOrder"} + ExternalRefType_QualityAssessmentReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/qualityAssessmentReport"} + ExternalRefType_ReleaseHistory = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/releaseHistory"} + ExternalRefType_ReleaseNotes = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/releaseNotes"} + ExternalRefType_RiskAssessment = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/riskAssessment"} + ExternalRefType_RuntimeAnalysisReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/runtimeAnalysisReport"} + ExternalRefType_SecureSoftwareAttestation = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/secureSoftwareAttestation"} + ExternalRefType_SecurityAdversaryModel = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityAdversaryModel"} + ExternalRefType_SecurityAdvisory = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityAdvisory"} + ExternalRefType_SecurityFix = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityFix"} + ExternalRefType_SecurityOther = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityOther"} + ExternalRefType_SecurityPenTestReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityPenTestReport"} + ExternalRefType_SecurityPolicy = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityPolicy"} + ExternalRefType_SecurityThreatModel = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityThreatModel"} + ExternalRefType_SocialMedia = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/socialMedia"} + ExternalRefType_SourceArtifact = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/sourceArtifact"} + ExternalRefType_StaticAnalysisReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/staticAnalysisReport"} + ExternalRefType_Support = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/support"} + ExternalRefType_Vcs = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/vcs"} + ExternalRefType_VulnerabilityDisclosureReport = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/vulnerabilityDisclosureReport"} + ExternalRefType_VulnerabilityExploitabilityAssessment = ExternalRefType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/vulnerabilityExploitabilityAssessment"} +) + +type HashAlgorithm struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm" iri-compact:"HashAlgorithm"` + + Iri string `iri:"@id"` +} + +var ( + HashAlgorithm_Blake2b256 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b256"} + HashAlgorithm_Blake2b384 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b384"} + HashAlgorithm_Blake2b512 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b512"} + HashAlgorithm_Blake3 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake3"} + HashAlgorithm_CrystalsDilithium = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/crystalsDilithium"} + HashAlgorithm_CrystalsKyber = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/crystalsKyber"} + HashAlgorithm_Falcon = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/falcon"} + HashAlgorithm_Md2 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md2"} + HashAlgorithm_Md4 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md4"} + HashAlgorithm_Md5 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md5"} + HashAlgorithm_Md6 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md6"} + HashAlgorithm_Other = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/other"} + HashAlgorithm_Sha1 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha1"} + HashAlgorithm_Sha224 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha224"} + HashAlgorithm_Sha256 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha256"} + HashAlgorithm_Sha384 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha384"} + HashAlgorithm_Sha3_224 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_224"} + HashAlgorithm_Sha3_256 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_256"} + HashAlgorithm_Sha3_384 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_384"} + HashAlgorithm_Sha3_512 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_512"} + HashAlgorithm_Sha512 = HashAlgorithm{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha512"} +) + +type IIntegrityMethod interface { + + // GetComment provide consumers with comments by the creator of the Element about the + // Element. + GetComment() string + + SetComment(string) +} + +type IntegrityMethod struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/IntegrityMethod" iri-compact:"IntegrityMethod"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` +} + +func (o *IntegrityMethod) GetComment() string { + return o.Comment +} +func (o *IntegrityMethod) SetComment(v string) { + o.Comment = v +} + +type LifecycleScopeType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType" iri-compact:"LifecycleScopeType"` + + Iri string `iri:"@id"` +} + +var ( + LifecycleScopeType_Build = LifecycleScopeType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/build"} + LifecycleScopeType_Design = LifecycleScopeType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/design"} + LifecycleScopeType_Development = LifecycleScopeType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/development"} + LifecycleScopeType_Other = LifecycleScopeType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/other"} + LifecycleScopeType_Runtime = LifecycleScopeType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/runtime"} + LifecycleScopeType_Test = LifecycleScopeType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/test"} +) + +type INamespaceMap interface { + + // GetNamespace provides an unambiguous mechanism for conveying a URI fragment portion of an + // ElementID. + GetNamespace() string + + SetNamespace(string) + + // GetPrefix a substitute for a URI. + GetPrefix() string + + SetPrefix(string) +} + +type NamespaceMap struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/NamespaceMap" iri-compact:"NamespaceMap"` + + Iri string `iri:"@id"` + + // Namespace provides an unambiguous mechanism for conveying a URI fragment portion of an + // ElementID. + Namespace string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/namespace" iri-compact:"namespace"` + // Prefix a substitute for a URI. + Prefix string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/prefix" iri-compact:"prefix"` +} + +func NewNamespaceMap() INamespaceMap { + return &NamespaceMap{} +} + +func (o *NamespaceMap) GetNamespace() string { + return o.Namespace +} +func (o *NamespaceMap) SetNamespace(v string) { + o.Namespace = v +} +func (o *NamespaceMap) GetPrefix() string { + return o.Prefix +} +func (o *NamespaceMap) SetPrefix(v string) { + o.Prefix = v +} + +type IPackageVerificationCode interface { + IIntegrityMethod + + // GetAlgorithm specifies the algorithm used for calculating the hash value. + GetAlgorithm() HashAlgorithm + + SetAlgorithm(HashAlgorithm) + + // GetHashValue the result of applying a hash algorithm to an Element. + GetHashValue() string + + SetHashValue(string) + + // GetPackageVerificationCodeExcludedFile the relative file name of a file to be excluded from the + // `PackageVerificationCode`. + GetPackageVerificationCodeExcludedFile() []string + + SetPackageVerificationCodeExcludedFile(...string) +} + +type PackageVerificationCode struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/PackageVerificationCode" iri-compact:"PackageVerificationCode"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + + // Algorithm specifies the algorithm used for calculating the hash value. + Algorithm HashAlgorithm `iri:"https://spdx.org/rdf/3.0.0/terms/Core/algorithm" iri-compact:"algorithm"` + // HashValue the result of applying a hash algorithm to an Element. + HashValue string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/hashValue" iri-compact:"hashValue"` + // PackageVerificationCodeExcludedFile the relative file name of a file to be excluded from the + // `PackageVerificationCode`. + PackageVerificationCodeExcludedFile []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/packageVerificationCodeExcludedFile" iri-compact:"packageVerificationCodeExcludedFile"` +} + +func NewPackageVerificationCode() IPackageVerificationCode { + return &PackageVerificationCode{} +} + +func (o *PackageVerificationCode) GetComment() string { + return o.Comment +} +func (o *PackageVerificationCode) SetComment(v string) { + o.Comment = v +} + +func (o *PackageVerificationCode) GetAlgorithm() HashAlgorithm { + return o.Algorithm +} +func (o *PackageVerificationCode) SetAlgorithm(v HashAlgorithm) { + o.Algorithm = v +} +func (o *PackageVerificationCode) GetHashValue() string { + return o.HashValue +} +func (o *PackageVerificationCode) SetHashValue(v string) { + o.HashValue = v +} +func (o *PackageVerificationCode) GetPackageVerificationCodeExcludedFile() []string { + return o.PackageVerificationCodeExcludedFile +} +func (o *PackageVerificationCode) SetPackageVerificationCodeExcludedFile(v ...string) { + o.PackageVerificationCodeExcludedFile = v +} + +type IPositiveIntegerRange interface { + + // GetBeginIntegerRange defines the beginning of a range. + GetBeginIntegerRange() uint + + SetBeginIntegerRange(uint) + + // GetEndIntegerRange defines the end of a range. + GetEndIntegerRange() uint + + SetEndIntegerRange(uint) +} + +type PositiveIntegerRange struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/PositiveIntegerRange" iri-compact:"PositiveIntegerRange"` + + Iri string `iri:"@id"` + + // BeginIntegerRange defines the beginning of a range. + BeginIntegerRange uint `iri:"https://spdx.org/rdf/3.0.0/terms/Core/beginIntegerRange" iri-compact:"beginIntegerRange"` + // EndIntegerRange defines the end of a range. + EndIntegerRange uint `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endIntegerRange" iri-compact:"endIntegerRange"` +} + +func NewPositiveIntegerRange() IPositiveIntegerRange { + return &PositiveIntegerRange{} +} + +func (o *PositiveIntegerRange) GetBeginIntegerRange() uint { + return o.BeginIntegerRange +} +func (o *PositiveIntegerRange) SetBeginIntegerRange(v uint) { + o.BeginIntegerRange = v +} +func (o *PositiveIntegerRange) GetEndIntegerRange() uint { + return o.EndIntegerRange +} +func (o *PositiveIntegerRange) SetEndIntegerRange(v uint) { + o.EndIntegerRange = v +} + +type PresenceType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/PresenceType" iri-compact:"PresenceType"` + + Iri string `iri:"@id"` +} + +var ( + PresenceType_No = PresenceType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/no"} + PresenceType_NoAssertion = PresenceType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/noAssertion"} + PresenceType_Yes = PresenceType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/yes"} +) + +type ProfileIdentifierType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType" iri-compact:"ProfileIdentifierType"` + + Iri string `iri:"@id"` +} + +var ( + ProfileIdentifierType_Ai = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/ai"} + ProfileIdentifierType_Build = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/build"} + ProfileIdentifierType_Core = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/core"} + ProfileIdentifierType_Dataset = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/dataset"} + ProfileIdentifierType_ExpandedLicensing = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/expandedLicensing"} + ProfileIdentifierType_Extension = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/extension"} + ProfileIdentifierType_Lite = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/lite"} + ProfileIdentifierType_Security = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/security"} + ProfileIdentifierType_SimpleLicensing = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/simpleLicensing"} + ProfileIdentifierType_Software = ProfileIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/software"} +) + +type IRelationship interface { + IElement + + // GetCompleteness provides information about the completeness of relationships. + GetCompleteness() RelationshipCompleteness + + SetCompleteness(RelationshipCompleteness) + + // GetEndTime specifies the time from which an element is no longer applicable / valid. + GetEndTime() string + + SetEndTime(string) + + // GetFrom references the Element on the left-hand side of a relationship. + GetFrom() IElement + + SetFrom(IElement) + + // GetRelationshipType information about the relationship between two Elements. + GetRelationshipType() RelationshipType + + SetRelationshipType(RelationshipType) + + // GetStartTime specifies the time from which an element is applicable / valid. + GetStartTime() string + + SetStartTime(string) + + // GetTo references an Element on the right-hand side of a relationship. + GetTo() []IElement + + SetTo(...IElement) +} + +type Relationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Relationship" iri-compact:"Relationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` +} + +func NewRelationship() IRelationship { + return &Relationship{} +} + +func (o *Relationship) GetSpdxId() string { + return o.SpdxId +} +func (o *Relationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Relationship) GetComment() string { + return o.Comment +} +func (o *Relationship) SetComment(v string) { + o.Comment = v +} +func (o *Relationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Relationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Relationship) GetDescription() string { + return o.Description +} +func (o *Relationship) SetDescription(v string) { + o.Description = v +} +func (o *Relationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Relationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Relationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Relationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Relationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Relationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Relationship) GetName() string { + return o.Name +} +func (o *Relationship) SetName(v string) { + o.Name = v +} +func (o *Relationship) GetSummary() string { + return o.Summary +} +func (o *Relationship) SetSummary(v string) { + o.Summary = v +} +func (o *Relationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Relationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Relationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *Relationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *Relationship) GetEndTime() string { + return o.EndTime +} +func (o *Relationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *Relationship) GetFrom() IElement { + return o.From +} +func (o *Relationship) SetFrom(v IElement) { + o.From = v +} +func (o *Relationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *Relationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *Relationship) GetStartTime() string { + return o.StartTime +} +func (o *Relationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *Relationship) GetTo() []IElement { + return o.To +} +func (o *Relationship) SetTo(v ...IElement) { + o.To = v +} + +type RelationshipCompleteness struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness" iri-compact:"RelationshipCompleteness"` + + Iri string `iri:"@id"` +} + +var ( + RelationshipCompleteness_Complete = RelationshipCompleteness{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness/complete"} + RelationshipCompleteness_Incomplete = RelationshipCompleteness{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness/incomplete"} + RelationshipCompleteness_NoAssertion = RelationshipCompleteness{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness/noAssertion"} +) + +type RelationshipType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType" iri-compact:"RelationshipType"` + + Iri string `iri:"@id"` +} + +var ( + RelationshipType_Affects = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/affects"} + RelationshipType_AmendedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/amendedBy"} + RelationshipType_AncestorOf = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/ancestorOf"} + RelationshipType_AvailableFrom = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/availableFrom"} + RelationshipType_Configures = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/configures"} + RelationshipType_Contains = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/contains"} + RelationshipType_CoordinatedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/coordinatedBy"} + RelationshipType_CopiedTo = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/copiedTo"} + RelationshipType_DelegatedTo = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/delegatedTo"} + RelationshipType_DependsOn = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/dependsOn"} + RelationshipType_DescendantOf = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/descendantOf"} + RelationshipType_Describes = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/describes"} + RelationshipType_DoesNotAffect = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/doesNotAffect"} + RelationshipType_ExpandsTo = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/expandsTo"} + RelationshipType_ExploitCreatedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/exploitCreatedBy"} + RelationshipType_FixedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/fixedBy"} + RelationshipType_FixedIn = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/fixedIn"} + RelationshipType_FoundBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/foundBy"} + RelationshipType_Generates = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/generates"} + RelationshipType_HasAddedFile = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasAddedFile"} + RelationshipType_HasAssessmentFor = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasAssessmentFor"} + RelationshipType_HasAssociatedVulnerability = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasAssociatedVulnerability"} + RelationshipType_HasConcludedLicense = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasConcludedLicense"} + RelationshipType_HasDataFile = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDataFile"} + RelationshipType_HasDeclaredLicense = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDeclaredLicense"} + RelationshipType_HasDeletedFile = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDeletedFile"} + RelationshipType_HasDependencyManifest = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDependencyManifest"} + RelationshipType_HasDistributionArtifact = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDistributionArtifact"} + RelationshipType_HasDocumentation = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDocumentation"} + RelationshipType_HasDynamicLink = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDynamicLink"} + RelationshipType_HasEvidence = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasEvidence"} + RelationshipType_HasExample = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasExample"} + RelationshipType_HasHost = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasHost"} + RelationshipType_HasInputs = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasInputs"} + RelationshipType_HasMetadata = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasMetadata"} + RelationshipType_HasOptionalComponent = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasOptionalComponent"} + RelationshipType_HasOptionalDependency = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasOptionalDependency"} + RelationshipType_HasOutputs = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasOutputs"} + RelationshipType_HasPrerequsite = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasPrerequsite"} + RelationshipType_HasProvidedDependency = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasProvidedDependency"} + RelationshipType_HasRequirement = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasRequirement"} + RelationshipType_HasSpecification = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasSpecification"} + RelationshipType_HasStaticLink = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasStaticLink"} + RelationshipType_HasTest = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasTest"} + RelationshipType_HasTestCase = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasTestCase"} + RelationshipType_HasVariant = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasVariant"} + RelationshipType_InvokedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/invokedBy"} + RelationshipType_ModifiedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/modifiedBy"} + RelationshipType_Other = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/other"} + RelationshipType_PackagedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/packagedBy"} + RelationshipType_PatchedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/patchedBy"} + RelationshipType_PublishedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/publishedBy"} + RelationshipType_ReportedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/reportedBy"} + RelationshipType_RepublishedBy = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/republishedBy"} + RelationshipType_SerializedInArtifact = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/serializedInArtifact"} + RelationshipType_TestedOn = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/testedOn"} + RelationshipType_TrainedOn = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/trainedOn"} + RelationshipType_UnderInvestigationFor = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/underInvestigationFor"} + RelationshipType_UsesTool = RelationshipType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/usesTool"} +) + +type ISpdxDocument interface { + IElementCollection + + // GetDataLicense provides the license under which the SPDX documentation of the Element can be + // used. + GetDataLicense() IAnyLicenseInfo + + SetDataLicense(IAnyLicenseInfo) + + // GetImports provides an ExternalMap of Element identifiers. + GetImports() []IExternalMap + + SetImports(...IExternalMap) + + // GetNamespaceMap provides a NamespaceMap of prefixes and associated namespace partial URIs applicable to an SpdxDocument and independent of any specific serialization format or instance. + GetNamespaceMap() []INamespaceMap + + SetNamespaceMap(...INamespaceMap) +} + +type SpdxDocument struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/SpdxDocument" iri-compact:"SpdxDocument" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Elements refers to one or more Elements that are part of an ElementCollection. + Elements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/element" iri-compact:"element"` + // ProfileConformance describes one a profile which the creator of this ElementCollection intends to + // conform to. + ProfileConformance []ProfileIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/profileConformance" iri-compact:"profileConformance"` + // RootElements this property is used to denote the root Element(s) of a tree of elements contained in a BOM. + RootElements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/rootElement" iri-compact:"rootElement"` + + // DataLicense provides the license under which the SPDX documentation of the Element can be + // used. + DataLicense IAnyLicenseInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/dataLicense" iri-compact:"dataLicense"` + // Imports provides an ExternalMap of Element identifiers. + Imports []IExternalMap `iri:"https://spdx.org/rdf/3.0.0/terms/Core/imports" iri-compact:"imports"` + // NamespaceMap provides a NamespaceMap of prefixes and associated namespace partial URIs applicable to an SpdxDocument and independent of any specific serialization format or instance. + NamespaceMap []INamespaceMap `iri:"https://spdx.org/rdf/3.0.0/terms/Core/namespaceMap" iri-compact:"namespaceMap"` +} + +func NewSpdxDocument() ISpdxDocument { + return &SpdxDocument{} +} + +func (o *SpdxDocument) GetSpdxId() string { + return o.SpdxId +} +func (o *SpdxDocument) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *SpdxDocument) GetComment() string { + return o.Comment +} +func (o *SpdxDocument) SetComment(v string) { + o.Comment = v +} +func (o *SpdxDocument) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *SpdxDocument) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *SpdxDocument) GetDescription() string { + return o.Description +} +func (o *SpdxDocument) SetDescription(v string) { + o.Description = v +} +func (o *SpdxDocument) GetExtensions() []IExtension { + return o.Extensions +} +func (o *SpdxDocument) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *SpdxDocument) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *SpdxDocument) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *SpdxDocument) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *SpdxDocument) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *SpdxDocument) GetName() string { + return o.Name +} +func (o *SpdxDocument) SetName(v string) { + o.Name = v +} +func (o *SpdxDocument) GetSummary() string { + return o.Summary +} +func (o *SpdxDocument) SetSummary(v string) { + o.Summary = v +} +func (o *SpdxDocument) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *SpdxDocument) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *SpdxDocument) GetElements() []IElement { + return o.Elements +} +func (o *SpdxDocument) SetElements(v ...IElement) { + o.Elements = v +} +func (o *SpdxDocument) GetProfileConformance() []ProfileIdentifierType { + return o.ProfileConformance +} +func (o *SpdxDocument) SetProfileConformance(v ...ProfileIdentifierType) { + o.ProfileConformance = v +} +func (o *SpdxDocument) GetRootElements() []IElement { + return o.RootElements +} +func (o *SpdxDocument) SetRootElements(v ...IElement) { + o.RootElements = v +} + +func (o *SpdxDocument) GetDataLicense() IAnyLicenseInfo { + return o.DataLicense +} +func (o *SpdxDocument) SetDataLicense(v IAnyLicenseInfo) { + o.DataLicense = v +} +func (o *SpdxDocument) GetImports() []IExternalMap { + return o.Imports +} +func (o *SpdxDocument) SetImports(v ...IExternalMap) { + o.Imports = v +} +func (o *SpdxDocument) GetNamespaceMap() []INamespaceMap { + return o.NamespaceMap +} +func (o *SpdxDocument) SetNamespaceMap(v ...INamespaceMap) { + o.NamespaceMap = v +} + +type SupportType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/SupportType" iri-compact:"SupportType"` + + Iri string `iri:"@id"` +} + +var ( + SupportType_Deployed = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/deployed"} + SupportType_Development = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/development"} + SupportType_EndOfSupport = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/endOfSupport"} + SupportType_LimitedSupport = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/limitedSupport"} + SupportType_NoAssertion = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/noAssertion"} + SupportType_NoSupport = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/noSupport"} + SupportType_Support = SupportType{Iri: "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/support"} +) + +type ITool interface { + IElement +} + +type Tool struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Tool" iri-compact:"Tool" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewTool() ITool { + return &Tool{} +} + +func (o *Tool) GetSpdxId() string { + return o.SpdxId +} +func (o *Tool) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Tool) GetComment() string { + return o.Comment +} +func (o *Tool) SetComment(v string) { + o.Comment = v +} +func (o *Tool) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Tool) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Tool) GetDescription() string { + return o.Description +} +func (o *Tool) SetDescription(v string) { + o.Description = v +} +func (o *Tool) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Tool) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Tool) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Tool) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Tool) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Tool) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Tool) GetName() string { + return o.Name +} +func (o *Tool) SetName(v string) { + o.Name = v +} +func (o *Tool) GetSummary() string { + return o.Summary +} +func (o *Tool) SetSummary(v string) { + o.Summary = v +} +func (o *Tool) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Tool) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type ConfidentialityLevelType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType" iri-compact:"dataset_ConfidentialityLevelType"` + + Iri string `iri:"@id"` +} + +var ( + ConfidentialityLevelType_Amber = ConfidentialityLevelType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/amber"} + ConfidentialityLevelType_Clear = ConfidentialityLevelType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/clear"} + ConfidentialityLevelType_Green = ConfidentialityLevelType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/green"} + ConfidentialityLevelType_Red = ConfidentialityLevelType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/red"} +) + +type DatasetAvailabilityType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType" iri-compact:"dataset_DatasetAvailabilityType"` + + Iri string `iri:"@id"` +} + +var ( + DatasetAvailabilityType_Clickthrough = DatasetAvailabilityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/clickthrough"} + DatasetAvailabilityType_DirectDownload = DatasetAvailabilityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/directDownload"} + DatasetAvailabilityType_Query = DatasetAvailabilityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/query"} + DatasetAvailabilityType_Registration = DatasetAvailabilityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/registration"} + DatasetAvailabilityType_ScrapingScript = DatasetAvailabilityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/scrapingScript"} +) + +type DatasetType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType" iri-compact:"dataset_DatasetType"` + + Iri string `iri:"@id"` +} + +var ( + DatasetType_Audio = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/audio"} + DatasetType_Categorical = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/categorical"} + DatasetType_Graph = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/graph"} + DatasetType_Image = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/image"} + DatasetType_NoAssertion = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/noAssertion"} + DatasetType_Numeric = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/numeric"} + DatasetType_Other = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/other"} + DatasetType_Sensor = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/sensor"} + DatasetType_Structured = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/structured"} + DatasetType_Syntactic = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/syntactic"} + DatasetType_Text = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/text"} + DatasetType_Timeseries = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/timeseries"} + DatasetType_Timestamp = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/timestamp"} + DatasetType_Video = DatasetType{Iri: "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/video"} +) + +type ILicenseAddition interface { + IElement + + // GetAdditionText identifies the full text of a LicenseAddition. + GetAdditionText() string + + SetAdditionText(string) + + // GetIsDeprecatedAdditionId specifies whether an additional text identifier has been marked as deprecated. + GetIsDeprecatedAdditionId() bool + + SetIsDeprecatedAdditionId(bool) + + // GetLicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + GetLicenseXml() string + + SetLicenseXml(string) + + // GetObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + GetObsoletedBy() string + + SetObsoletedBy(string) + + // GetSeeAlso contains a URL where the License or LicenseAddition can be found in use. + GetSeeAlso() []string + + SetSeeAlso(...string) + + // GetStandardAdditionTemplate identifies the full text of a LicenseAddition, in SPDX templating format. + GetStandardAdditionTemplate() string + + SetStandardAdditionTemplate(string) +} + +type LicenseAddition struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/LicenseAddition" iri-compact:"expandedlicensing_LicenseAddition" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // AdditionText identifies the full text of a LicenseAddition. + AdditionText string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/additionText" iri-compact:"expandedlicensing_additionText"` + // IsDeprecatedAdditionId specifies whether an additional text identifier has been marked as deprecated. + IsDeprecatedAdditionId bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isDeprecatedAdditionId" iri-compact:"expandedlicensing_isDeprecatedAdditionId"` + // LicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + LicenseXml string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/licenseXml" iri-compact:"expandedlicensing_licenseXml"` + // ObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + ObsoletedBy string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/obsoletedBy" iri-compact:"expandedlicensing_obsoletedBy"` + // SeeAlso contains a URL where the License or LicenseAddition can be found in use. + SeeAlso []string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/seeAlso" iri-compact:"expandedlicensing_seeAlso"` + // StandardAdditionTemplate identifies the full text of a LicenseAddition, in SPDX templating format. + StandardAdditionTemplate string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardAdditionTemplate" iri-compact:"expandedlicensing_standardAdditionTemplate"` +} + +func (o *LicenseAddition) GetSpdxId() string { + return o.SpdxId +} +func (o *LicenseAddition) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *LicenseAddition) GetComment() string { + return o.Comment +} +func (o *LicenseAddition) SetComment(v string) { + o.Comment = v +} +func (o *LicenseAddition) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *LicenseAddition) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *LicenseAddition) GetDescription() string { + return o.Description +} +func (o *LicenseAddition) SetDescription(v string) { + o.Description = v +} +func (o *LicenseAddition) GetExtensions() []IExtension { + return o.Extensions +} +func (o *LicenseAddition) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *LicenseAddition) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *LicenseAddition) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *LicenseAddition) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *LicenseAddition) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *LicenseAddition) GetName() string { + return o.Name +} +func (o *LicenseAddition) SetName(v string) { + o.Name = v +} +func (o *LicenseAddition) GetSummary() string { + return o.Summary +} +func (o *LicenseAddition) SetSummary(v string) { + o.Summary = v +} +func (o *LicenseAddition) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *LicenseAddition) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *LicenseAddition) GetAdditionText() string { + return o.AdditionText +} +func (o *LicenseAddition) SetAdditionText(v string) { + o.AdditionText = v +} +func (o *LicenseAddition) GetIsDeprecatedAdditionId() bool { + return o.IsDeprecatedAdditionId +} +func (o *LicenseAddition) SetIsDeprecatedAdditionId(v bool) { + o.IsDeprecatedAdditionId = v +} +func (o *LicenseAddition) GetLicenseXml() string { + return o.LicenseXml +} +func (o *LicenseAddition) SetLicenseXml(v string) { + o.LicenseXml = v +} +func (o *LicenseAddition) GetObsoletedBy() string { + return o.ObsoletedBy +} +func (o *LicenseAddition) SetObsoletedBy(v string) { + o.ObsoletedBy = v +} +func (o *LicenseAddition) GetSeeAlso() []string { + return o.SeeAlso +} +func (o *LicenseAddition) SetSeeAlso(v ...string) { + o.SeeAlso = v +} +func (o *LicenseAddition) GetStandardAdditionTemplate() string { + return o.StandardAdditionTemplate +} +func (o *LicenseAddition) SetStandardAdditionTemplate(v string) { + o.StandardAdditionTemplate = v +} + +type IListedLicenseException interface { + ILicenseAddition + + // GetDeprecatedVersion specifies the SPDX License List version in which this license or exception + // identifier was deprecated. + GetDeprecatedVersion() string + + SetDeprecatedVersion(string) + + // GetListVersionAdded specifies the SPDX License List version in which this ListedLicense or + // ListedLicenseException identifier was first added. + GetListVersionAdded() string + + SetListVersionAdded(string) +} + +type ListedLicenseException struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/ListedLicenseException" iri-compact:"expandedlicensing_ListedLicenseException" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // AdditionText identifies the full text of a LicenseAddition. + AdditionText string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/additionText" iri-compact:"expandedlicensing_additionText"` + // IsDeprecatedAdditionId specifies whether an additional text identifier has been marked as deprecated. + IsDeprecatedAdditionId bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isDeprecatedAdditionId" iri-compact:"expandedlicensing_isDeprecatedAdditionId"` + // LicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + LicenseXml string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/licenseXml" iri-compact:"expandedlicensing_licenseXml"` + // ObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + ObsoletedBy string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/obsoletedBy" iri-compact:"expandedlicensing_obsoletedBy"` + // SeeAlso contains a URL where the License or LicenseAddition can be found in use. + SeeAlso []string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/seeAlso" iri-compact:"expandedlicensing_seeAlso"` + // StandardAdditionTemplate identifies the full text of a LicenseAddition, in SPDX templating format. + StandardAdditionTemplate string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardAdditionTemplate" iri-compact:"expandedlicensing_standardAdditionTemplate"` + + // DeprecatedVersion specifies the SPDX License List version in which this license or exception + // identifier was deprecated. + DeprecatedVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/deprecatedVersion" iri-compact:"expandedlicensing_deprecatedVersion"` + // ListVersionAdded specifies the SPDX License List version in which this ListedLicense or + // ListedLicenseException identifier was first added. + ListVersionAdded string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/listVersionAdded" iri-compact:"expandedlicensing_listVersionAdded"` +} + +func NewListedLicenseException() IListedLicenseException { + return &ListedLicenseException{} +} + +func (o *ListedLicenseException) GetSpdxId() string { + return o.SpdxId +} +func (o *ListedLicenseException) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *ListedLicenseException) GetComment() string { + return o.Comment +} +func (o *ListedLicenseException) SetComment(v string) { + o.Comment = v +} +func (o *ListedLicenseException) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *ListedLicenseException) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *ListedLicenseException) GetDescription() string { + return o.Description +} +func (o *ListedLicenseException) SetDescription(v string) { + o.Description = v +} +func (o *ListedLicenseException) GetExtensions() []IExtension { + return o.Extensions +} +func (o *ListedLicenseException) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *ListedLicenseException) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *ListedLicenseException) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *ListedLicenseException) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *ListedLicenseException) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *ListedLicenseException) GetName() string { + return o.Name +} +func (o *ListedLicenseException) SetName(v string) { + o.Name = v +} +func (o *ListedLicenseException) GetSummary() string { + return o.Summary +} +func (o *ListedLicenseException) SetSummary(v string) { + o.Summary = v +} +func (o *ListedLicenseException) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ListedLicenseException) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *ListedLicenseException) GetAdditionText() string { + return o.AdditionText +} +func (o *ListedLicenseException) SetAdditionText(v string) { + o.AdditionText = v +} +func (o *ListedLicenseException) GetIsDeprecatedAdditionId() bool { + return o.IsDeprecatedAdditionId +} +func (o *ListedLicenseException) SetIsDeprecatedAdditionId(v bool) { + o.IsDeprecatedAdditionId = v +} +func (o *ListedLicenseException) GetLicenseXml() string { + return o.LicenseXml +} +func (o *ListedLicenseException) SetLicenseXml(v string) { + o.LicenseXml = v +} +func (o *ListedLicenseException) GetObsoletedBy() string { + return o.ObsoletedBy +} +func (o *ListedLicenseException) SetObsoletedBy(v string) { + o.ObsoletedBy = v +} +func (o *ListedLicenseException) GetSeeAlso() []string { + return o.SeeAlso +} +func (o *ListedLicenseException) SetSeeAlso(v ...string) { + o.SeeAlso = v +} +func (o *ListedLicenseException) GetStandardAdditionTemplate() string { + return o.StandardAdditionTemplate +} +func (o *ListedLicenseException) SetStandardAdditionTemplate(v string) { + o.StandardAdditionTemplate = v +} + +func (o *ListedLicenseException) GetDeprecatedVersion() string { + return o.DeprecatedVersion +} +func (o *ListedLicenseException) SetDeprecatedVersion(v string) { + o.DeprecatedVersion = v +} +func (o *ListedLicenseException) GetListVersionAdded() string { + return o.ListVersionAdded +} +func (o *ListedLicenseException) SetListVersionAdded(v string) { + o.ListVersionAdded = v +} + +type ICdxPropertyEntry interface { + + // GetCdxPropName a name used in a CdxExtension name-value pair. + GetCdxPropName() string + + SetCdxPropName(string) + + // GetCdxPropValue a value used in a CdxExtension name-value pair. + GetCdxPropValue() string + + SetCdxPropValue(string) +} + +type CdxPropertyEntry struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Extension/CdxPropertyEntry" iri-compact:"extension_CdxPropertyEntry"` + + Iri string `iri:"@id"` + + // CdxPropName a name used in a CdxExtension name-value pair. + CdxPropName string `iri:"https://spdx.org/rdf/3.0.0/terms/Extension/cdxPropName" iri-compact:"extension_cdxPropName"` + // CdxPropValue a value used in a CdxExtension name-value pair. + CdxPropValue string `iri:"https://spdx.org/rdf/3.0.0/terms/Extension/cdxPropValue" iri-compact:"extension_cdxPropValue"` +} + +func NewCdxPropertyEntry() ICdxPropertyEntry { + return &CdxPropertyEntry{} +} + +func (o *CdxPropertyEntry) GetCdxPropName() string { + return o.CdxPropName +} +func (o *CdxPropertyEntry) SetCdxPropName(v string) { + o.CdxPropName = v +} +func (o *CdxPropertyEntry) GetCdxPropValue() string { + return o.CdxPropValue +} +func (o *CdxPropertyEntry) SetCdxPropValue(v string) { + o.CdxPropValue = v +} + +type IExtension interface { +} + +type Extension struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Extension/Extension" iri-compact:"extension_Extension"` + + Iri string `iri:"@id"` +} + +type CvssSeverityType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType" iri-compact:"security_CvssSeverityType"` + + Iri string `iri:"@id"` +} + +var ( + CvssSeverityType_Critical = CvssSeverityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/critical"} + CvssSeverityType_High = CvssSeverityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/high"} + CvssSeverityType_Low = CvssSeverityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/low"} + CvssSeverityType_Medium = CvssSeverityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/medium"} + CvssSeverityType_None = CvssSeverityType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/none"} +) + +type ExploitCatalogType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/ExploitCatalogType" iri-compact:"security_ExploitCatalogType"` + + Iri string `iri:"@id"` +} + +var ( + ExploitCatalogType_Kev = ExploitCatalogType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/ExploitCatalogType/kev"} + ExploitCatalogType_Other = ExploitCatalogType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/ExploitCatalogType/other"} +) + +type SsvcDecisionType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType" iri-compact:"security_SsvcDecisionType"` + + Iri string `iri:"@id"` +} + +var ( + SsvcDecisionType_Act = SsvcDecisionType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/act"} + SsvcDecisionType_Attend = SsvcDecisionType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/attend"} + SsvcDecisionType_Track = SsvcDecisionType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/track"} + SsvcDecisionType_TrackStar = SsvcDecisionType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/trackStar"} +) + +type VexJustificationType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType" iri-compact:"security_VexJustificationType"` + + Iri string `iri:"@id"` +} + +var ( + VexJustificationType_ComponentNotPresent = VexJustificationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/componentNotPresent"} + VexJustificationType_InlineMitigationsAlreadyExist = VexJustificationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/inlineMitigationsAlreadyExist"} + VexJustificationType_VulnerableCodeCannotBeControlledByAdversary = VexJustificationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/vulnerableCodeCannotBeControlledByAdversary"} + VexJustificationType_VulnerableCodeNotInExecutePath = VexJustificationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/vulnerableCodeNotInExecutePath"} + VexJustificationType_VulnerableCodeNotPresent = VexJustificationType{Iri: "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/vulnerableCodeNotPresent"} +) + +type IVulnAssessmentRelationship interface { + IRelationship + + // GetSuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + GetSuppliedBy() IAgent + + SetSuppliedBy(IAgent) + + // GetAssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + GetAssessedElement() IElement + + SetAssessedElement(IElement) + + // GetModifiedTime specifies a time when a vulnerability assessment was modified + GetModifiedTime() string + + SetModifiedTime(string) + + // GetPublishedTime specifies the time when a vulnerability was published. + GetPublishedTime() string + + SetPublishedTime(string) + + // GetWithdrawnTime specified the time and date when a vulnerability was withdrawn. + GetWithdrawnTime() string + + SetWithdrawnTime(string) +} + +type VulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VulnAssessmentRelationship" iri-compact:"security_VulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` +} + +func (o *VulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *VulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *VulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *VulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *VulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *VulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *VulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *VulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *VulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *VulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *VulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *VulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *VulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *VulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *VulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *VulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *VulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *VulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *VulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *VulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *VulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *VulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *VulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *VulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *VulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *VulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *VulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *VulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *VulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *VulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *VulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *VulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *VulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *VulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *VulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *VulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *VulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *VulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *VulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *VulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *VulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *VulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +type IAnyLicenseInfo interface { + IElement +} + +type AnyLicenseInfo struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/AnyLicenseInfo" iri-compact:"simplelicensing_AnyLicenseInfo" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func (o *AnyLicenseInfo) GetSpdxId() string { + return o.SpdxId +} +func (o *AnyLicenseInfo) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *AnyLicenseInfo) GetComment() string { + return o.Comment +} +func (o *AnyLicenseInfo) SetComment(v string) { + o.Comment = v +} +func (o *AnyLicenseInfo) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *AnyLicenseInfo) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *AnyLicenseInfo) GetDescription() string { + return o.Description +} +func (o *AnyLicenseInfo) SetDescription(v string) { + o.Description = v +} +func (o *AnyLicenseInfo) GetExtensions() []IExtension { + return o.Extensions +} +func (o *AnyLicenseInfo) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *AnyLicenseInfo) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *AnyLicenseInfo) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *AnyLicenseInfo) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *AnyLicenseInfo) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *AnyLicenseInfo) GetName() string { + return o.Name +} +func (o *AnyLicenseInfo) SetName(v string) { + o.Name = v +} +func (o *AnyLicenseInfo) GetSummary() string { + return o.Summary +} +func (o *AnyLicenseInfo) SetSummary(v string) { + o.Summary = v +} +func (o *AnyLicenseInfo) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *AnyLicenseInfo) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type ILicenseExpression interface { + IAnyLicenseInfo + + // GetCustomIdToUri maps a LicenseRef or AdditionRef string for a Custom License or a Custom + // License Addition to its URI ID. + GetCustomIdToUri() []IDictionaryEntry + + SetCustomIdToUri(...IDictionaryEntry) + + // GetLicenseExpression a string in the license expression format. + GetLicenseExpression() string + + SetLicenseExpression(string) + + // GetLicenseListVersion the version of the SPDX License List used in the license expression. + GetLicenseListVersion() string + + SetLicenseListVersion(string) +} + +type LicenseExpression struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/LicenseExpression" iri-compact:"simplelicensing_LicenseExpression" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // CustomIdToUri maps a LicenseRef or AdditionRef string for a Custom License or a Custom + // License Addition to its URI ID. + CustomIdToUri []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/customIdToUri" iri-compact:"simplelicensing_customIdToUri"` + // LicenseExpression a string in the license expression format. + LicenseExpression string `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/licenseExpression" iri-compact:"simplelicensing_licenseExpression"` + // LicenseListVersion the version of the SPDX License List used in the license expression. + LicenseListVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/licenseListVersion" iri-compact:"simplelicensing_licenseListVersion"` +} + +func NewLicenseExpression() ILicenseExpression { + return &LicenseExpression{} +} + +func (o *LicenseExpression) GetSpdxId() string { + return o.SpdxId +} +func (o *LicenseExpression) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *LicenseExpression) GetComment() string { + return o.Comment +} +func (o *LicenseExpression) SetComment(v string) { + o.Comment = v +} +func (o *LicenseExpression) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *LicenseExpression) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *LicenseExpression) GetDescription() string { + return o.Description +} +func (o *LicenseExpression) SetDescription(v string) { + o.Description = v +} +func (o *LicenseExpression) GetExtensions() []IExtension { + return o.Extensions +} +func (o *LicenseExpression) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *LicenseExpression) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *LicenseExpression) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *LicenseExpression) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *LicenseExpression) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *LicenseExpression) GetName() string { + return o.Name +} +func (o *LicenseExpression) SetName(v string) { + o.Name = v +} +func (o *LicenseExpression) GetSummary() string { + return o.Summary +} +func (o *LicenseExpression) SetSummary(v string) { + o.Summary = v +} +func (o *LicenseExpression) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *LicenseExpression) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *LicenseExpression) GetCustomIdToUri() []IDictionaryEntry { + return o.CustomIdToUri +} +func (o *LicenseExpression) SetCustomIdToUri(v ...IDictionaryEntry) { + o.CustomIdToUri = v +} +func (o *LicenseExpression) GetLicenseExpression() string { + return o.LicenseExpression +} +func (o *LicenseExpression) SetLicenseExpression(v string) { + o.LicenseExpression = v +} +func (o *LicenseExpression) GetLicenseListVersion() string { + return o.LicenseListVersion +} +func (o *LicenseExpression) SetLicenseListVersion(v string) { + o.LicenseListVersion = v +} + +type ISimpleLicensingText interface { + IElement + + // GetLicenseText identifies the full text of a License or Addition. + GetLicenseText() string + + SetLicenseText(string) +} + +type SimpleLicensingText struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/SimpleLicensingText" iri-compact:"simplelicensing_SimpleLicensingText" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // LicenseText identifies the full text of a License or Addition. + LicenseText string `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/licenseText" iri-compact:"simplelicensing_licenseText"` +} + +func NewSimpleLicensingText() ISimpleLicensingText { + return &SimpleLicensingText{} +} + +func (o *SimpleLicensingText) GetSpdxId() string { + return o.SpdxId +} +func (o *SimpleLicensingText) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *SimpleLicensingText) GetComment() string { + return o.Comment +} +func (o *SimpleLicensingText) SetComment(v string) { + o.Comment = v +} +func (o *SimpleLicensingText) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *SimpleLicensingText) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *SimpleLicensingText) GetDescription() string { + return o.Description +} +func (o *SimpleLicensingText) SetDescription(v string) { + o.Description = v +} +func (o *SimpleLicensingText) GetExtensions() []IExtension { + return o.Extensions +} +func (o *SimpleLicensingText) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *SimpleLicensingText) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *SimpleLicensingText) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *SimpleLicensingText) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *SimpleLicensingText) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *SimpleLicensingText) GetName() string { + return o.Name +} +func (o *SimpleLicensingText) SetName(v string) { + o.Name = v +} +func (o *SimpleLicensingText) GetSummary() string { + return o.Summary +} +func (o *SimpleLicensingText) SetSummary(v string) { + o.Summary = v +} +func (o *SimpleLicensingText) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *SimpleLicensingText) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *SimpleLicensingText) GetLicenseText() string { + return o.LicenseText +} +func (o *SimpleLicensingText) SetLicenseText(v string) { + o.LicenseText = v +} + +type IContentIdentifier interface { + IIntegrityMethod + + // GetContentIdentifierType specifies the type of the content identifier. + GetContentIdentifierType() ContentIdentifierType + + SetContentIdentifierType(ContentIdentifierType) + + // GetContentIdentifierValue specifies the value of the content identifier. + GetContentIdentifierValue() string + + SetContentIdentifierValue(string) +} + +type ContentIdentifier struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/ContentIdentifier" iri-compact:"software_ContentIdentifier"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + + // ContentIdentifierType specifies the type of the content identifier. + ContentIdentifierType ContentIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifierType" iri-compact:"software_contentIdentifierType"` + // ContentIdentifierValue specifies the value of the content identifier. + ContentIdentifierValue string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifierValue" iri-compact:"software_contentIdentifierValue"` +} + +func NewContentIdentifier() IContentIdentifier { + return &ContentIdentifier{} +} + +func (o *ContentIdentifier) GetComment() string { + return o.Comment +} +func (o *ContentIdentifier) SetComment(v string) { + o.Comment = v +} + +func (o *ContentIdentifier) GetContentIdentifierType() ContentIdentifierType { + return o.ContentIdentifierType +} +func (o *ContentIdentifier) SetContentIdentifierType(v ContentIdentifierType) { + o.ContentIdentifierType = v +} +func (o *ContentIdentifier) GetContentIdentifierValue() string { + return o.ContentIdentifierValue +} +func (o *ContentIdentifier) SetContentIdentifierValue(v string) { + o.ContentIdentifierValue = v +} + +type ContentIdentifierType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/ContentIdentifierType" iri-compact:"software_ContentIdentifierType"` + + Iri string `iri:"@id"` +} + +var ( + ContentIdentifierType_Gitoid = ContentIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/ContentIdentifierType/gitoid"} + ContentIdentifierType_Swhid = ContentIdentifierType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/ContentIdentifierType/swhid"} +) + +type FileKindType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/FileKindType" iri-compact:"software_FileKindType"` + + Iri string `iri:"@id"` +} + +var ( + FileKindType_Directory = FileKindType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/FileKindType/directory"} + FileKindType_File = FileKindType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/FileKindType/file"} +) + +type SbomType struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/SbomType" iri-compact:"software_SbomType"` + + Iri string `iri:"@id"` +} + +var ( + SbomType_Analyzed = SbomType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/analyzed"} + SbomType_Build = SbomType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/build"} + SbomType_Deployed = SbomType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/deployed"} + SbomType_Design = SbomType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/design"} + SbomType_Runtime = SbomType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/runtime"} + SbomType_Source = SbomType{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/source"} +) + +type SoftwarePurpose struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose" iri-compact:"software_SoftwarePurpose"` + + Iri string `iri:"@id"` +} + +var ( + SoftwarePurpose_Application = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/application"} + SoftwarePurpose_Archive = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/archive"} + SoftwarePurpose_Bom = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/bom"} + SoftwarePurpose_Configuration = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/configuration"} + SoftwarePurpose_Container = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/container"} + SoftwarePurpose_Data = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/data"} + SoftwarePurpose_Device = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/device"} + SoftwarePurpose_DeviceDriver = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/deviceDriver"} + SoftwarePurpose_DiskImage = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/diskImage"} + SoftwarePurpose_Documentation = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/documentation"} + SoftwarePurpose_Evidence = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/evidence"} + SoftwarePurpose_Executable = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/executable"} + SoftwarePurpose_File = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/file"} + SoftwarePurpose_FilesystemImage = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/filesystemImage"} + SoftwarePurpose_Firmware = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/firmware"} + SoftwarePurpose_Framework = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/framework"} + SoftwarePurpose_Install = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/install"} + SoftwarePurpose_Library = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/library"} + SoftwarePurpose_Manifest = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/manifest"} + SoftwarePurpose_Model = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/model"} + SoftwarePurpose_Module = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/module"} + SoftwarePurpose_OperatingSystem = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/operatingSystem"} + SoftwarePurpose_Other = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/other"} + SoftwarePurpose_Patch = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/patch"} + SoftwarePurpose_Platform = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/platform"} + SoftwarePurpose_Requirement = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/requirement"} + SoftwarePurpose_Source = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/source"} + SoftwarePurpose_Specification = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/specification"} + SoftwarePurpose_Test = SoftwarePurpose{Iri: "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/test"} +) + +type IBuild interface { + IElement + + // GetBuildEndTime property that describes the time at which a build stops. + GetBuildEndTime() string + + SetBuildEndTime(string) + + // GetBuildId a buildId is a locally unique identifier used by a builder to identify a unique + // instance of a build produced by it. + GetBuildId() string + + SetBuildId(string) + + // GetBuildStartTime property describing the start time of a build. + GetBuildStartTime() string + + SetBuildStartTime(string) + + // GetBuildType a buildType is a hint that is used to indicate the toolchain, platform, or + // infrastructure that the build was invoked on. + GetBuildType() string + + SetBuildType(string) + + // GetConfigSourceDigest property that describes the digest of the build configuration file used to + // invoke a build. + GetConfigSourceDigest() []IHash + + SetConfigSourceDigest(...IHash) + + // GetConfigSourceEntrypoint property describes the invocation entrypoint of a build. + GetConfigSourceEntrypoint() []string + + SetConfigSourceEntrypoint(...string) + + // GetConfigSourceUri property that describes the URI of the build configuration source file. + GetConfigSourceUri() []string + + SetConfigSourceUri(...string) + + // GetEnvironment property describing the session in which a build is invoked. + GetEnvironment() []IDictionaryEntry + + SetEnvironment(...IDictionaryEntry) + + // GetParameters property describing the parameters used in an instance of a build. + GetParameters() []IDictionaryEntry + + SetParameters(...IDictionaryEntry) +} + +type Build struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Build/Build" iri-compact:"build_Build" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuildEndTime property that describes the time at which a build stops. + BuildEndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Build/buildEndTime" iri-compact:"build_buildEndTime"` + // BuildId a buildId is a locally unique identifier used by a builder to identify a unique + // instance of a build produced by it. + BuildId string `iri:"https://spdx.org/rdf/3.0.0/terms/Build/buildId" iri-compact:"build_buildId"` + // BuildStartTime property describing the start time of a build. + BuildStartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Build/buildStartTime" iri-compact:"build_buildStartTime"` + // BuildType a buildType is a hint that is used to indicate the toolchain, platform, or + // infrastructure that the build was invoked on. + BuildType string `iri:"https://spdx.org/rdf/3.0.0/terms/Build/buildType" iri-compact:"build_buildType"` + // ConfigSourceDigest property that describes the digest of the build configuration file used to + // invoke a build. + ConfigSourceDigest []IHash `iri:"https://spdx.org/rdf/3.0.0/terms/Build/configSourceDigest" iri-compact:"build_configSourceDigest"` + // ConfigSourceEntrypoint property describes the invocation entrypoint of a build. + ConfigSourceEntrypoint []string `iri:"https://spdx.org/rdf/3.0.0/terms/Build/configSourceEntrypoint" iri-compact:"build_configSourceEntrypoint"` + // ConfigSourceUri property that describes the URI of the build configuration source file. + ConfigSourceUri []string `iri:"https://spdx.org/rdf/3.0.0/terms/Build/configSourceUri" iri-compact:"build_configSourceUri"` + // Environment property describing the session in which a build is invoked. + Environment []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/Build/environment" iri-compact:"build_environment"` + // Parameters property describing the parameters used in an instance of a build. + Parameters []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/Build/parameters" iri-compact:"build_parameters"` +} + +func NewBuild() IBuild { + return &Build{} +} + +func (o *Build) GetSpdxId() string { + return o.SpdxId +} +func (o *Build) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Build) GetComment() string { + return o.Comment +} +func (o *Build) SetComment(v string) { + o.Comment = v +} +func (o *Build) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Build) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Build) GetDescription() string { + return o.Description +} +func (o *Build) SetDescription(v string) { + o.Description = v +} +func (o *Build) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Build) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Build) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Build) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Build) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Build) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Build) GetName() string { + return o.Name +} +func (o *Build) SetName(v string) { + o.Name = v +} +func (o *Build) GetSummary() string { + return o.Summary +} +func (o *Build) SetSummary(v string) { + o.Summary = v +} +func (o *Build) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Build) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Build) GetBuildEndTime() string { + return o.BuildEndTime +} +func (o *Build) SetBuildEndTime(v string) { + o.BuildEndTime = v +} +func (o *Build) GetBuildId() string { + return o.BuildId +} +func (o *Build) SetBuildId(v string) { + o.BuildId = v +} +func (o *Build) GetBuildStartTime() string { + return o.BuildStartTime +} +func (o *Build) SetBuildStartTime(v string) { + o.BuildStartTime = v +} +func (o *Build) GetBuildType() string { + return o.BuildType +} +func (o *Build) SetBuildType(v string) { + o.BuildType = v +} +func (o *Build) GetConfigSourceDigest() []IHash { + return o.ConfigSourceDigest +} +func (o *Build) SetConfigSourceDigest(v ...IHash) { + o.ConfigSourceDigest = v +} +func (o *Build) GetConfigSourceEntrypoint() []string { + return o.ConfigSourceEntrypoint +} +func (o *Build) SetConfigSourceEntrypoint(v ...string) { + o.ConfigSourceEntrypoint = v +} +func (o *Build) GetConfigSourceUri() []string { + return o.ConfigSourceUri +} +func (o *Build) SetConfigSourceUri(v ...string) { + o.ConfigSourceUri = v +} +func (o *Build) GetEnvironment() []IDictionaryEntry { + return o.Environment +} +func (o *Build) SetEnvironment(v ...IDictionaryEntry) { + o.Environment = v +} +func (o *Build) GetParameters() []IDictionaryEntry { + return o.Parameters +} +func (o *Build) SetParameters(v ...IDictionaryEntry) { + o.Parameters = v +} + +type IAgent interface { + IElement +} + +type Agent struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Agent" iri-compact:"Agent" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewAgent() IAgent { + return &Agent{} +} + +func (o *Agent) GetSpdxId() string { + return o.SpdxId +} +func (o *Agent) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Agent) GetComment() string { + return o.Comment +} +func (o *Agent) SetComment(v string) { + o.Comment = v +} +func (o *Agent) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Agent) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Agent) GetDescription() string { + return o.Description +} +func (o *Agent) SetDescription(v string) { + o.Description = v +} +func (o *Agent) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Agent) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Agent) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Agent) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Agent) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Agent) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Agent) GetName() string { + return o.Name +} +func (o *Agent) SetName(v string) { + o.Name = v +} +func (o *Agent) GetSummary() string { + return o.Summary +} +func (o *Agent) SetSummary(v string) { + o.Summary = v +} +func (o *Agent) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Agent) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type IAnnotation interface { + IElement + + // GetAnnotationType describes the type of annotation. + GetAnnotationType() AnnotationType + + SetAnnotationType(AnnotationType) + + // GetContentType specifies the media type of an Element or Property. + GetContentType() string + + SetContentType(string) + + // GetStatement commentary on an assertion that an annotator has made. + GetStatement() string + + SetStatement(string) + + // GetSubject an Element an annotator has made an assertion about. + GetSubject() IElement + + SetSubject(IElement) +} + +type Annotation struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Annotation" iri-compact:"Annotation" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // AnnotationType describes the type of annotation. + AnnotationType AnnotationType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/annotationType" iri-compact:"annotationType"` + // ContentType specifies the media type of an Element or Property. + ContentType string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/contentType" iri-compact:"contentType"` + // Statement commentary on an assertion that an annotator has made. + Statement string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/statement" iri-compact:"statement"` + // Subject an Element an annotator has made an assertion about. + Subject IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/subject" iri-compact:"subject"` +} + +func NewAnnotation() IAnnotation { + return &Annotation{} +} + +func (o *Annotation) GetSpdxId() string { + return o.SpdxId +} +func (o *Annotation) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Annotation) GetComment() string { + return o.Comment +} +func (o *Annotation) SetComment(v string) { + o.Comment = v +} +func (o *Annotation) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Annotation) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Annotation) GetDescription() string { + return o.Description +} +func (o *Annotation) SetDescription(v string) { + o.Description = v +} +func (o *Annotation) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Annotation) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Annotation) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Annotation) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Annotation) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Annotation) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Annotation) GetName() string { + return o.Name +} +func (o *Annotation) SetName(v string) { + o.Name = v +} +func (o *Annotation) GetSummary() string { + return o.Summary +} +func (o *Annotation) SetSummary(v string) { + o.Summary = v +} +func (o *Annotation) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Annotation) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Annotation) GetAnnotationType() AnnotationType { + return o.AnnotationType +} +func (o *Annotation) SetAnnotationType(v AnnotationType) { + o.AnnotationType = v +} +func (o *Annotation) GetContentType() string { + return o.ContentType +} +func (o *Annotation) SetContentType(v string) { + o.ContentType = v +} +func (o *Annotation) GetStatement() string { + return o.Statement +} +func (o *Annotation) SetStatement(v string) { + o.Statement = v +} +func (o *Annotation) GetSubject() IElement { + return o.Subject +} +func (o *Annotation) SetSubject(v IElement) { + o.Subject = v +} + +type IArtifact interface { + IElement + + // GetBuiltTime specifies the time an artifact was built. + GetBuiltTime() string + + SetBuiltTime(string) + + // GetOriginatedBy identifies from where or whom the Element originally came. + GetOriginatedBy() []IAgent + + SetOriginatedBy(...IAgent) + + // GetReleaseTime specifies the time an artifact was released. + GetReleaseTime() string + + SetReleaseTime(string) + + // GetStandardName the name of a relevant standard that may apply to an artifact. + GetStandardName() []string + + SetStandardName(...string) + + // GetSuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + GetSuppliedBy() IAgent + + SetSuppliedBy(IAgent) + + // GetSupportLevel specifies the level of support associated with an artifact. + GetSupportLevel() []SupportType + + SetSupportLevel(...SupportType) + + // GetValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + GetValidUntilTime() string + + SetValidUntilTime(string) +} + +type Artifact struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Artifact" iri-compact:"Artifact" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` +} + +func (o *Artifact) GetSpdxId() string { + return o.SpdxId +} +func (o *Artifact) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Artifact) GetComment() string { + return o.Comment +} +func (o *Artifact) SetComment(v string) { + o.Comment = v +} +func (o *Artifact) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Artifact) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Artifact) GetDescription() string { + return o.Description +} +func (o *Artifact) SetDescription(v string) { + o.Description = v +} +func (o *Artifact) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Artifact) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Artifact) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Artifact) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Artifact) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Artifact) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Artifact) GetName() string { + return o.Name +} +func (o *Artifact) SetName(v string) { + o.Name = v +} +func (o *Artifact) GetSummary() string { + return o.Summary +} +func (o *Artifact) SetSummary(v string) { + o.Summary = v +} +func (o *Artifact) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Artifact) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Artifact) GetBuiltTime() string { + return o.BuiltTime +} +func (o *Artifact) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *Artifact) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *Artifact) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *Artifact) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *Artifact) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *Artifact) GetStandardName() []string { + return o.StandardName +} +func (o *Artifact) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *Artifact) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *Artifact) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *Artifact) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *Artifact) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *Artifact) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *Artifact) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +type IBundle interface { + IElementCollection + + // GetContext gives information about the circumstances or unifying properties + // that Elements of the bundle have been assembled under. + GetContext() string + + SetContext(string) +} + +type Bundle struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Bundle" iri-compact:"Bundle" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Elements refers to one or more Elements that are part of an ElementCollection. + Elements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/element" iri-compact:"element"` + // ProfileConformance describes one a profile which the creator of this ElementCollection intends to + // conform to. + ProfileConformance []ProfileIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/profileConformance" iri-compact:"profileConformance"` + // RootElements this property is used to denote the root Element(s) of a tree of elements contained in a BOM. + RootElements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/rootElement" iri-compact:"rootElement"` + + // Context gives information about the circumstances or unifying properties + // that Elements of the bundle have been assembled under. + Context string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/context" iri-compact:"context"` +} + +func NewBundle() IBundle { + return &Bundle{} +} + +func (o *Bundle) GetSpdxId() string { + return o.SpdxId +} +func (o *Bundle) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Bundle) GetComment() string { + return o.Comment +} +func (o *Bundle) SetComment(v string) { + o.Comment = v +} +func (o *Bundle) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Bundle) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Bundle) GetDescription() string { + return o.Description +} +func (o *Bundle) SetDescription(v string) { + o.Description = v +} +func (o *Bundle) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Bundle) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Bundle) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Bundle) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Bundle) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Bundle) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Bundle) GetName() string { + return o.Name +} +func (o *Bundle) SetName(v string) { + o.Name = v +} +func (o *Bundle) GetSummary() string { + return o.Summary +} +func (o *Bundle) SetSummary(v string) { + o.Summary = v +} +func (o *Bundle) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Bundle) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Bundle) GetElements() []IElement { + return o.Elements +} +func (o *Bundle) SetElements(v ...IElement) { + o.Elements = v +} +func (o *Bundle) GetProfileConformance() []ProfileIdentifierType { + return o.ProfileConformance +} +func (o *Bundle) SetProfileConformance(v ...ProfileIdentifierType) { + o.ProfileConformance = v +} +func (o *Bundle) GetRootElements() []IElement { + return o.RootElements +} +func (o *Bundle) SetRootElements(v ...IElement) { + o.RootElements = v +} + +func (o *Bundle) GetContext() string { + return o.Context +} +func (o *Bundle) SetContext(v string) { + o.Context = v +} + +type IHash interface { + IIntegrityMethod + + // GetAlgorithm specifies the algorithm used for calculating the hash value. + GetAlgorithm() HashAlgorithm + + SetAlgorithm(HashAlgorithm) + + // GetHashValue the result of applying a hash algorithm to an Element. + GetHashValue() string + + SetHashValue(string) +} + +type Hash struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Hash" iri-compact:"Hash"` + + Iri string `iri:"@id"` + + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + + // Algorithm specifies the algorithm used for calculating the hash value. + Algorithm HashAlgorithm `iri:"https://spdx.org/rdf/3.0.0/terms/Core/algorithm" iri-compact:"algorithm"` + // HashValue the result of applying a hash algorithm to an Element. + HashValue string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/hashValue" iri-compact:"hashValue"` +} + +func NewHash() IHash { + return &Hash{} +} + +func (o *Hash) GetComment() string { + return o.Comment +} +func (o *Hash) SetComment(v string) { + o.Comment = v +} + +func (o *Hash) GetAlgorithm() HashAlgorithm { + return o.Algorithm +} +func (o *Hash) SetAlgorithm(v HashAlgorithm) { + o.Algorithm = v +} +func (o *Hash) GetHashValue() string { + return o.HashValue +} +func (o *Hash) SetHashValue(v string) { + o.HashValue = v +} + +type ILifecycleScopedRelationship interface { + IRelationship + + // GetScope capture the scope of information about a specific relationship between elements. + GetScope() LifecycleScopeType + + SetScope(LifecycleScopeType) +} + +type LifecycleScopedRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopedRelationship" iri-compact:"LifecycleScopedRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // Scope capture the scope of information about a specific relationship between elements. + Scope LifecycleScopeType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/scope" iri-compact:"scope"` +} + +func NewLifecycleScopedRelationship() ILifecycleScopedRelationship { + return &LifecycleScopedRelationship{} +} + +func (o *LifecycleScopedRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *LifecycleScopedRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *LifecycleScopedRelationship) GetComment() string { + return o.Comment +} +func (o *LifecycleScopedRelationship) SetComment(v string) { + o.Comment = v +} +func (o *LifecycleScopedRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *LifecycleScopedRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *LifecycleScopedRelationship) GetDescription() string { + return o.Description +} +func (o *LifecycleScopedRelationship) SetDescription(v string) { + o.Description = v +} +func (o *LifecycleScopedRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *LifecycleScopedRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *LifecycleScopedRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *LifecycleScopedRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *LifecycleScopedRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *LifecycleScopedRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *LifecycleScopedRelationship) GetName() string { + return o.Name +} +func (o *LifecycleScopedRelationship) SetName(v string) { + o.Name = v +} +func (o *LifecycleScopedRelationship) GetSummary() string { + return o.Summary +} +func (o *LifecycleScopedRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *LifecycleScopedRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *LifecycleScopedRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *LifecycleScopedRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *LifecycleScopedRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *LifecycleScopedRelationship) GetEndTime() string { + return o.EndTime +} +func (o *LifecycleScopedRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *LifecycleScopedRelationship) GetFrom() IElement { + return o.From +} +func (o *LifecycleScopedRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *LifecycleScopedRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *LifecycleScopedRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *LifecycleScopedRelationship) GetStartTime() string { + return o.StartTime +} +func (o *LifecycleScopedRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *LifecycleScopedRelationship) GetTo() []IElement { + return o.To +} +func (o *LifecycleScopedRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *LifecycleScopedRelationship) GetScope() LifecycleScopeType { + return o.Scope +} +func (o *LifecycleScopedRelationship) SetScope(v LifecycleScopeType) { + o.Scope = v +} + +type IOrganization interface { + IAgent +} + +type Organization struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Organization" iri-compact:"Organization" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewOrganization() IOrganization { + return &Organization{} +} + +func (o *Organization) GetSpdxId() string { + return o.SpdxId +} +func (o *Organization) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Organization) GetComment() string { + return o.Comment +} +func (o *Organization) SetComment(v string) { + o.Comment = v +} +func (o *Organization) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Organization) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Organization) GetDescription() string { + return o.Description +} +func (o *Organization) SetDescription(v string) { + o.Description = v +} +func (o *Organization) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Organization) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Organization) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Organization) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Organization) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Organization) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Organization) GetName() string { + return o.Name +} +func (o *Organization) SetName(v string) { + o.Name = v +} +func (o *Organization) GetSummary() string { + return o.Summary +} +func (o *Organization) SetSummary(v string) { + o.Summary = v +} +func (o *Organization) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Organization) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type IPerson interface { + IAgent +} + +type Person struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Person" iri-compact:"Person" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewPerson() IPerson { + return &Person{} +} + +func (o *Person) GetSpdxId() string { + return o.SpdxId +} +func (o *Person) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Person) GetComment() string { + return o.Comment +} +func (o *Person) SetComment(v string) { + o.Comment = v +} +func (o *Person) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Person) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Person) GetDescription() string { + return o.Description +} +func (o *Person) SetDescription(v string) { + o.Description = v +} +func (o *Person) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Person) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Person) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Person) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Person) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Person) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Person) GetName() string { + return o.Name +} +func (o *Person) SetName(v string) { + o.Name = v +} +func (o *Person) GetSummary() string { + return o.Summary +} +func (o *Person) SetSummary(v string) { + o.Summary = v +} +func (o *Person) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Person) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type ISoftwareAgent interface { + IAgent +} + +type SoftwareAgent struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/SoftwareAgent" iri-compact:"SoftwareAgent" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewSoftwareAgent() ISoftwareAgent { + return &SoftwareAgent{} +} + +func (o *SoftwareAgent) GetSpdxId() string { + return o.SpdxId +} +func (o *SoftwareAgent) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *SoftwareAgent) GetComment() string { + return o.Comment +} +func (o *SoftwareAgent) SetComment(v string) { + o.Comment = v +} +func (o *SoftwareAgent) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *SoftwareAgent) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *SoftwareAgent) GetDescription() string { + return o.Description +} +func (o *SoftwareAgent) SetDescription(v string) { + o.Description = v +} +func (o *SoftwareAgent) GetExtensions() []IExtension { + return o.Extensions +} +func (o *SoftwareAgent) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *SoftwareAgent) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *SoftwareAgent) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *SoftwareAgent) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *SoftwareAgent) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *SoftwareAgent) GetName() string { + return o.Name +} +func (o *SoftwareAgent) SetName(v string) { + o.Name = v +} +func (o *SoftwareAgent) GetSummary() string { + return o.Summary +} +func (o *SoftwareAgent) SetSummary(v string) { + o.Summary = v +} +func (o *SoftwareAgent) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *SoftwareAgent) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type IConjunctiveLicenseSet interface { + IAnyLicenseInfo + + // GetMember a license expression participating in a license set. + GetMember() []IAnyLicenseInfo + + SetMember(...IAnyLicenseInfo) +} + +type ConjunctiveLicenseSet struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/ConjunctiveLicenseSet" iri-compact:"expandedlicensing_ConjunctiveLicenseSet" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Member a license expression participating in a license set. + Member []IAnyLicenseInfo `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/member" iri-compact:"expandedlicensing_member"` +} + +func NewConjunctiveLicenseSet() IConjunctiveLicenseSet { + return &ConjunctiveLicenseSet{} +} + +func (o *ConjunctiveLicenseSet) GetSpdxId() string { + return o.SpdxId +} +func (o *ConjunctiveLicenseSet) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *ConjunctiveLicenseSet) GetComment() string { + return o.Comment +} +func (o *ConjunctiveLicenseSet) SetComment(v string) { + o.Comment = v +} +func (o *ConjunctiveLicenseSet) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *ConjunctiveLicenseSet) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *ConjunctiveLicenseSet) GetDescription() string { + return o.Description +} +func (o *ConjunctiveLicenseSet) SetDescription(v string) { + o.Description = v +} +func (o *ConjunctiveLicenseSet) GetExtensions() []IExtension { + return o.Extensions +} +func (o *ConjunctiveLicenseSet) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *ConjunctiveLicenseSet) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *ConjunctiveLicenseSet) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *ConjunctiveLicenseSet) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *ConjunctiveLicenseSet) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *ConjunctiveLicenseSet) GetName() string { + return o.Name +} +func (o *ConjunctiveLicenseSet) SetName(v string) { + o.Name = v +} +func (o *ConjunctiveLicenseSet) GetSummary() string { + return o.Summary +} +func (o *ConjunctiveLicenseSet) SetSummary(v string) { + o.Summary = v +} +func (o *ConjunctiveLicenseSet) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ConjunctiveLicenseSet) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *ConjunctiveLicenseSet) GetMember() []IAnyLicenseInfo { + return o.Member +} +func (o *ConjunctiveLicenseSet) SetMember(v ...IAnyLicenseInfo) { + o.Member = v +} + +type ICustomLicenseAddition interface { + ILicenseAddition +} + +type CustomLicenseAddition struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/CustomLicenseAddition" iri-compact:"expandedlicensing_CustomLicenseAddition" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // AdditionText identifies the full text of a LicenseAddition. + AdditionText string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/additionText" iri-compact:"expandedlicensing_additionText"` + // IsDeprecatedAdditionId specifies whether an additional text identifier has been marked as deprecated. + IsDeprecatedAdditionId bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isDeprecatedAdditionId" iri-compact:"expandedlicensing_isDeprecatedAdditionId"` + // LicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + LicenseXml string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/licenseXml" iri-compact:"expandedlicensing_licenseXml"` + // ObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + ObsoletedBy string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/obsoletedBy" iri-compact:"expandedlicensing_obsoletedBy"` + // SeeAlso contains a URL where the License or LicenseAddition can be found in use. + SeeAlso []string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/seeAlso" iri-compact:"expandedlicensing_seeAlso"` + // StandardAdditionTemplate identifies the full text of a LicenseAddition, in SPDX templating format. + StandardAdditionTemplate string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardAdditionTemplate" iri-compact:"expandedlicensing_standardAdditionTemplate"` +} + +func NewCustomLicenseAddition() ICustomLicenseAddition { + return &CustomLicenseAddition{} +} + +func (o *CustomLicenseAddition) GetSpdxId() string { + return o.SpdxId +} +func (o *CustomLicenseAddition) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *CustomLicenseAddition) GetComment() string { + return o.Comment +} +func (o *CustomLicenseAddition) SetComment(v string) { + o.Comment = v +} +func (o *CustomLicenseAddition) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *CustomLicenseAddition) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *CustomLicenseAddition) GetDescription() string { + return o.Description +} +func (o *CustomLicenseAddition) SetDescription(v string) { + o.Description = v +} +func (o *CustomLicenseAddition) GetExtensions() []IExtension { + return o.Extensions +} +func (o *CustomLicenseAddition) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *CustomLicenseAddition) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *CustomLicenseAddition) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *CustomLicenseAddition) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *CustomLicenseAddition) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *CustomLicenseAddition) GetName() string { + return o.Name +} +func (o *CustomLicenseAddition) SetName(v string) { + o.Name = v +} +func (o *CustomLicenseAddition) GetSummary() string { + return o.Summary +} +func (o *CustomLicenseAddition) SetSummary(v string) { + o.Summary = v +} +func (o *CustomLicenseAddition) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *CustomLicenseAddition) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *CustomLicenseAddition) GetAdditionText() string { + return o.AdditionText +} +func (o *CustomLicenseAddition) SetAdditionText(v string) { + o.AdditionText = v +} +func (o *CustomLicenseAddition) GetIsDeprecatedAdditionId() bool { + return o.IsDeprecatedAdditionId +} +func (o *CustomLicenseAddition) SetIsDeprecatedAdditionId(v bool) { + o.IsDeprecatedAdditionId = v +} +func (o *CustomLicenseAddition) GetLicenseXml() string { + return o.LicenseXml +} +func (o *CustomLicenseAddition) SetLicenseXml(v string) { + o.LicenseXml = v +} +func (o *CustomLicenseAddition) GetObsoletedBy() string { + return o.ObsoletedBy +} +func (o *CustomLicenseAddition) SetObsoletedBy(v string) { + o.ObsoletedBy = v +} +func (o *CustomLicenseAddition) GetSeeAlso() []string { + return o.SeeAlso +} +func (o *CustomLicenseAddition) SetSeeAlso(v ...string) { + o.SeeAlso = v +} +func (o *CustomLicenseAddition) GetStandardAdditionTemplate() string { + return o.StandardAdditionTemplate +} +func (o *CustomLicenseAddition) SetStandardAdditionTemplate(v string) { + o.StandardAdditionTemplate = v +} + +type IDisjunctiveLicenseSet interface { + IAnyLicenseInfo + + // GetMember a license expression participating in a license set. + GetMember() []IAnyLicenseInfo + + SetMember(...IAnyLicenseInfo) +} + +type DisjunctiveLicenseSet struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/DisjunctiveLicenseSet" iri-compact:"expandedlicensing_DisjunctiveLicenseSet" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Member a license expression participating in a license set. + Member []IAnyLicenseInfo `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/member" iri-compact:"expandedlicensing_member"` +} + +func NewDisjunctiveLicenseSet() IDisjunctiveLicenseSet { + return &DisjunctiveLicenseSet{} +} + +func (o *DisjunctiveLicenseSet) GetSpdxId() string { + return o.SpdxId +} +func (o *DisjunctiveLicenseSet) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *DisjunctiveLicenseSet) GetComment() string { + return o.Comment +} +func (o *DisjunctiveLicenseSet) SetComment(v string) { + o.Comment = v +} +func (o *DisjunctiveLicenseSet) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *DisjunctiveLicenseSet) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *DisjunctiveLicenseSet) GetDescription() string { + return o.Description +} +func (o *DisjunctiveLicenseSet) SetDescription(v string) { + o.Description = v +} +func (o *DisjunctiveLicenseSet) GetExtensions() []IExtension { + return o.Extensions +} +func (o *DisjunctiveLicenseSet) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *DisjunctiveLicenseSet) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *DisjunctiveLicenseSet) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *DisjunctiveLicenseSet) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *DisjunctiveLicenseSet) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *DisjunctiveLicenseSet) GetName() string { + return o.Name +} +func (o *DisjunctiveLicenseSet) SetName(v string) { + o.Name = v +} +func (o *DisjunctiveLicenseSet) GetSummary() string { + return o.Summary +} +func (o *DisjunctiveLicenseSet) SetSummary(v string) { + o.Summary = v +} +func (o *DisjunctiveLicenseSet) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *DisjunctiveLicenseSet) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *DisjunctiveLicenseSet) GetMember() []IAnyLicenseInfo { + return o.Member +} +func (o *DisjunctiveLicenseSet) SetMember(v ...IAnyLicenseInfo) { + o.Member = v +} + +type IExtendableLicense interface { + IAnyLicenseInfo +} + +type ExtendableLicense struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/ExtendableLicense" iri-compact:"expandedlicensing_ExtendableLicense" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func (o *ExtendableLicense) GetSpdxId() string { + return o.SpdxId +} +func (o *ExtendableLicense) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *ExtendableLicense) GetComment() string { + return o.Comment +} +func (o *ExtendableLicense) SetComment(v string) { + o.Comment = v +} +func (o *ExtendableLicense) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *ExtendableLicense) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *ExtendableLicense) GetDescription() string { + return o.Description +} +func (o *ExtendableLicense) SetDescription(v string) { + o.Description = v +} +func (o *ExtendableLicense) GetExtensions() []IExtension { + return o.Extensions +} +func (o *ExtendableLicense) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *ExtendableLicense) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *ExtendableLicense) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *ExtendableLicense) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *ExtendableLicense) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *ExtendableLicense) GetName() string { + return o.Name +} +func (o *ExtendableLicense) SetName(v string) { + o.Name = v +} +func (o *ExtendableLicense) GetSummary() string { + return o.Summary +} +func (o *ExtendableLicense) SetSummary(v string) { + o.Summary = v +} +func (o *ExtendableLicense) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ExtendableLicense) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type IIndividualLicensingInfo interface { + IAnyLicenseInfo +} + +type IndividualLicensingInfo struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/IndividualLicensingInfo" iri-compact:"expandedlicensing_IndividualLicensingInfo" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` +} + +func NewIndividualLicensingInfo() IIndividualLicensingInfo { + return &IndividualLicensingInfo{} +} + +func (o *IndividualLicensingInfo) GetSpdxId() string { + return o.SpdxId +} +func (o *IndividualLicensingInfo) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *IndividualLicensingInfo) GetComment() string { + return o.Comment +} +func (o *IndividualLicensingInfo) SetComment(v string) { + o.Comment = v +} +func (o *IndividualLicensingInfo) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *IndividualLicensingInfo) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *IndividualLicensingInfo) GetDescription() string { + return o.Description +} +func (o *IndividualLicensingInfo) SetDescription(v string) { + o.Description = v +} +func (o *IndividualLicensingInfo) GetExtensions() []IExtension { + return o.Extensions +} +func (o *IndividualLicensingInfo) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *IndividualLicensingInfo) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *IndividualLicensingInfo) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *IndividualLicensingInfo) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *IndividualLicensingInfo) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *IndividualLicensingInfo) GetName() string { + return o.Name +} +func (o *IndividualLicensingInfo) SetName(v string) { + o.Name = v +} +func (o *IndividualLicensingInfo) GetSummary() string { + return o.Summary +} +func (o *IndividualLicensingInfo) SetSummary(v string) { + o.Summary = v +} +func (o *IndividualLicensingInfo) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *IndividualLicensingInfo) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +type ILicense interface { + IExtendableLicense + + // GetIsDeprecatedLicenseId specifies whether a license or additional text identifier has been marked as + // deprecated. + GetIsDeprecatedLicenseId() bool + + SetIsDeprecatedLicenseId(bool) + + // GetIsFsfLibre specifies whether the License is listed as free by the + // [Free Software Foundation (FSF)](https://fsf.org). + GetIsFsfLibre() bool + + SetIsFsfLibre(bool) + + // GetIsOsiApproved specifies whether the License is listed as approved by the + // [Open Source Initiative (OSI)](https://opensource.org). + GetIsOsiApproved() bool + + SetIsOsiApproved(bool) + + // GetLicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + GetLicenseXml() string + + SetLicenseXml(string) + + // GetObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + GetObsoletedBy() string + + SetObsoletedBy(string) + + // GetSeeAlso contains a URL where the License or LicenseAddition can be found in use. + GetSeeAlso() []string + + SetSeeAlso(...string) + + // GetStandardLicenseHeader provides a License author's preferred text to indicate that a file is covered + // by the License. + GetStandardLicenseHeader() string + + SetStandardLicenseHeader(string) + + // GetStandardLicenseTemplate identifies the full text of a License, in SPDX templating format. + GetStandardLicenseTemplate() string + + SetStandardLicenseTemplate(string) + + // GetLicenseText identifies the full text of a License or Addition. + GetLicenseText() string + + SetLicenseText(string) +} + +type License struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/License" iri-compact:"expandedlicensing_License" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // IsDeprecatedLicenseId specifies whether a license or additional text identifier has been marked as + // deprecated. + IsDeprecatedLicenseId bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isDeprecatedLicenseId" iri-compact:"expandedlicensing_isDeprecatedLicenseId"` + // IsFsfLibre specifies whether the License is listed as free by the + // [Free Software Foundation (FSF)](https://fsf.org). + IsFsfLibre bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isFsfLibre" iri-compact:"expandedlicensing_isFsfLibre"` + // IsOsiApproved specifies whether the License is listed as approved by the + // [Open Source Initiative (OSI)](https://opensource.org). + IsOsiApproved bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isOsiApproved" iri-compact:"expandedlicensing_isOsiApproved"` + // LicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + LicenseXml string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/licenseXml" iri-compact:"expandedlicensing_licenseXml"` + // ObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + ObsoletedBy string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/obsoletedBy" iri-compact:"expandedlicensing_obsoletedBy"` + // SeeAlso contains a URL where the License or LicenseAddition can be found in use. + SeeAlso []string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/seeAlso" iri-compact:"expandedlicensing_seeAlso"` + // StandardLicenseHeader provides a License author's preferred text to indicate that a file is covered + // by the License. + StandardLicenseHeader string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardLicenseHeader" iri-compact:"expandedlicensing_standardLicenseHeader"` + // StandardLicenseTemplate identifies the full text of a License, in SPDX templating format. + StandardLicenseTemplate string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardLicenseTemplate" iri-compact:"expandedlicensing_standardLicenseTemplate"` + // LicenseText identifies the full text of a License or Addition. + LicenseText string `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/licenseText" iri-compact:"simplelicensing_licenseText"` +} + +func (o *License) GetSpdxId() string { + return o.SpdxId +} +func (o *License) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *License) GetComment() string { + return o.Comment +} +func (o *License) SetComment(v string) { + o.Comment = v +} +func (o *License) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *License) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *License) GetDescription() string { + return o.Description +} +func (o *License) SetDescription(v string) { + o.Description = v +} +func (o *License) GetExtensions() []IExtension { + return o.Extensions +} +func (o *License) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *License) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *License) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *License) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *License) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *License) GetName() string { + return o.Name +} +func (o *License) SetName(v string) { + o.Name = v +} +func (o *License) GetSummary() string { + return o.Summary +} +func (o *License) SetSummary(v string) { + o.Summary = v +} +func (o *License) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *License) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *License) GetIsDeprecatedLicenseId() bool { + return o.IsDeprecatedLicenseId +} +func (o *License) SetIsDeprecatedLicenseId(v bool) { + o.IsDeprecatedLicenseId = v +} +func (o *License) GetIsFsfLibre() bool { + return o.IsFsfLibre +} +func (o *License) SetIsFsfLibre(v bool) { + o.IsFsfLibre = v +} +func (o *License) GetIsOsiApproved() bool { + return o.IsOsiApproved +} +func (o *License) SetIsOsiApproved(v bool) { + o.IsOsiApproved = v +} +func (o *License) GetLicenseXml() string { + return o.LicenseXml +} +func (o *License) SetLicenseXml(v string) { + o.LicenseXml = v +} +func (o *License) GetObsoletedBy() string { + return o.ObsoletedBy +} +func (o *License) SetObsoletedBy(v string) { + o.ObsoletedBy = v +} +func (o *License) GetSeeAlso() []string { + return o.SeeAlso +} +func (o *License) SetSeeAlso(v ...string) { + o.SeeAlso = v +} +func (o *License) GetStandardLicenseHeader() string { + return o.StandardLicenseHeader +} +func (o *License) SetStandardLicenseHeader(v string) { + o.StandardLicenseHeader = v +} +func (o *License) GetStandardLicenseTemplate() string { + return o.StandardLicenseTemplate +} +func (o *License) SetStandardLicenseTemplate(v string) { + o.StandardLicenseTemplate = v +} +func (o *License) GetLicenseText() string { + return o.LicenseText +} +func (o *License) SetLicenseText(v string) { + o.LicenseText = v +} + +type IListedLicense interface { + ILicense + + // GetDeprecatedVersion specifies the SPDX License List version in which this license or exception + // identifier was deprecated. + GetDeprecatedVersion() string + + SetDeprecatedVersion(string) + + // GetListVersionAdded specifies the SPDX License List version in which this ListedLicense or + // ListedLicenseException identifier was first added. + GetListVersionAdded() string + + SetListVersionAdded(string) +} + +type ListedLicense struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/ListedLicense" iri-compact:"expandedlicensing_ListedLicense" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // IsDeprecatedLicenseId specifies whether a license or additional text identifier has been marked as + // deprecated. + IsDeprecatedLicenseId bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isDeprecatedLicenseId" iri-compact:"expandedlicensing_isDeprecatedLicenseId"` + // IsFsfLibre specifies whether the License is listed as free by the + // [Free Software Foundation (FSF)](https://fsf.org). + IsFsfLibre bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isFsfLibre" iri-compact:"expandedlicensing_isFsfLibre"` + // IsOsiApproved specifies whether the License is listed as approved by the + // [Open Source Initiative (OSI)](https://opensource.org). + IsOsiApproved bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isOsiApproved" iri-compact:"expandedlicensing_isOsiApproved"` + // LicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + LicenseXml string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/licenseXml" iri-compact:"expandedlicensing_licenseXml"` + // ObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + ObsoletedBy string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/obsoletedBy" iri-compact:"expandedlicensing_obsoletedBy"` + // SeeAlso contains a URL where the License or LicenseAddition can be found in use. + SeeAlso []string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/seeAlso" iri-compact:"expandedlicensing_seeAlso"` + // StandardLicenseHeader provides a License author's preferred text to indicate that a file is covered + // by the License. + StandardLicenseHeader string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardLicenseHeader" iri-compact:"expandedlicensing_standardLicenseHeader"` + // StandardLicenseTemplate identifies the full text of a License, in SPDX templating format. + StandardLicenseTemplate string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardLicenseTemplate" iri-compact:"expandedlicensing_standardLicenseTemplate"` + // LicenseText identifies the full text of a License or Addition. + LicenseText string `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/licenseText" iri-compact:"simplelicensing_licenseText"` + + // DeprecatedVersion specifies the SPDX License List version in which this license or exception + // identifier was deprecated. + DeprecatedVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/deprecatedVersion" iri-compact:"expandedlicensing_deprecatedVersion"` + // ListVersionAdded specifies the SPDX License List version in which this ListedLicense or + // ListedLicenseException identifier was first added. + ListVersionAdded string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/listVersionAdded" iri-compact:"expandedlicensing_listVersionAdded"` +} + +func NewListedLicense() IListedLicense { + return &ListedLicense{} +} + +func (o *ListedLicense) GetSpdxId() string { + return o.SpdxId +} +func (o *ListedLicense) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *ListedLicense) GetComment() string { + return o.Comment +} +func (o *ListedLicense) SetComment(v string) { + o.Comment = v +} +func (o *ListedLicense) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *ListedLicense) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *ListedLicense) GetDescription() string { + return o.Description +} +func (o *ListedLicense) SetDescription(v string) { + o.Description = v +} +func (o *ListedLicense) GetExtensions() []IExtension { + return o.Extensions +} +func (o *ListedLicense) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *ListedLicense) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *ListedLicense) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *ListedLicense) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *ListedLicense) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *ListedLicense) GetName() string { + return o.Name +} +func (o *ListedLicense) SetName(v string) { + o.Name = v +} +func (o *ListedLicense) GetSummary() string { + return o.Summary +} +func (o *ListedLicense) SetSummary(v string) { + o.Summary = v +} +func (o *ListedLicense) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ListedLicense) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *ListedLicense) GetIsDeprecatedLicenseId() bool { + return o.IsDeprecatedLicenseId +} +func (o *ListedLicense) SetIsDeprecatedLicenseId(v bool) { + o.IsDeprecatedLicenseId = v +} +func (o *ListedLicense) GetIsFsfLibre() bool { + return o.IsFsfLibre +} +func (o *ListedLicense) SetIsFsfLibre(v bool) { + o.IsFsfLibre = v +} +func (o *ListedLicense) GetIsOsiApproved() bool { + return o.IsOsiApproved +} +func (o *ListedLicense) SetIsOsiApproved(v bool) { + o.IsOsiApproved = v +} +func (o *ListedLicense) GetLicenseXml() string { + return o.LicenseXml +} +func (o *ListedLicense) SetLicenseXml(v string) { + o.LicenseXml = v +} +func (o *ListedLicense) GetObsoletedBy() string { + return o.ObsoletedBy +} +func (o *ListedLicense) SetObsoletedBy(v string) { + o.ObsoletedBy = v +} +func (o *ListedLicense) GetSeeAlso() []string { + return o.SeeAlso +} +func (o *ListedLicense) SetSeeAlso(v ...string) { + o.SeeAlso = v +} +func (o *ListedLicense) GetStandardLicenseHeader() string { + return o.StandardLicenseHeader +} +func (o *ListedLicense) SetStandardLicenseHeader(v string) { + o.StandardLicenseHeader = v +} +func (o *ListedLicense) GetStandardLicenseTemplate() string { + return o.StandardLicenseTemplate +} +func (o *ListedLicense) SetStandardLicenseTemplate(v string) { + o.StandardLicenseTemplate = v +} +func (o *ListedLicense) GetLicenseText() string { + return o.LicenseText +} +func (o *ListedLicense) SetLicenseText(v string) { + o.LicenseText = v +} + +func (o *ListedLicense) GetDeprecatedVersion() string { + return o.DeprecatedVersion +} +func (o *ListedLicense) SetDeprecatedVersion(v string) { + o.DeprecatedVersion = v +} +func (o *ListedLicense) GetListVersionAdded() string { + return o.ListVersionAdded +} +func (o *ListedLicense) SetListVersionAdded(v string) { + o.ListVersionAdded = v +} + +type IOrLaterOperator interface { + IExtendableLicense + + // GetSubjectLicense a License participating in an 'or later' model. + GetSubjectLicense() ILicense + + SetSubjectLicense(ILicense) +} + +type OrLaterOperator struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/OrLaterOperator" iri-compact:"expandedlicensing_OrLaterOperator" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // SubjectLicense a License participating in an 'or later' model. + SubjectLicense ILicense `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/subjectLicense" iri-compact:"expandedlicensing_subjectLicense"` +} + +func NewOrLaterOperator() IOrLaterOperator { + return &OrLaterOperator{} +} + +func (o *OrLaterOperator) GetSpdxId() string { + return o.SpdxId +} +func (o *OrLaterOperator) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *OrLaterOperator) GetComment() string { + return o.Comment +} +func (o *OrLaterOperator) SetComment(v string) { + o.Comment = v +} +func (o *OrLaterOperator) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *OrLaterOperator) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *OrLaterOperator) GetDescription() string { + return o.Description +} +func (o *OrLaterOperator) SetDescription(v string) { + o.Description = v +} +func (o *OrLaterOperator) GetExtensions() []IExtension { + return o.Extensions +} +func (o *OrLaterOperator) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *OrLaterOperator) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *OrLaterOperator) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *OrLaterOperator) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *OrLaterOperator) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *OrLaterOperator) GetName() string { + return o.Name +} +func (o *OrLaterOperator) SetName(v string) { + o.Name = v +} +func (o *OrLaterOperator) GetSummary() string { + return o.Summary +} +func (o *OrLaterOperator) SetSummary(v string) { + o.Summary = v +} +func (o *OrLaterOperator) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *OrLaterOperator) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *OrLaterOperator) GetSubjectLicense() ILicense { + return o.SubjectLicense +} +func (o *OrLaterOperator) SetSubjectLicense(v ILicense) { + o.SubjectLicense = v +} + +type IWithAdditionOperator interface { + IAnyLicenseInfo + + // GetSubjectAddition a LicenseAddition participating in a 'with addition' model. + GetSubjectAddition() ILicenseAddition + + SetSubjectAddition(ILicenseAddition) + + // GetSubjectExtendableLicense a License participating in a 'with addition' model. + GetSubjectExtendableLicense() IExtendableLicense + + SetSubjectExtendableLicense(IExtendableLicense) +} + +type WithAdditionOperator struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/WithAdditionOperator" iri-compact:"expandedlicensing_WithAdditionOperator" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // SubjectAddition a LicenseAddition participating in a 'with addition' model. + SubjectAddition ILicenseAddition `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/subjectAddition" iri-compact:"expandedlicensing_subjectAddition"` + // SubjectExtendableLicense a License participating in a 'with addition' model. + SubjectExtendableLicense IExtendableLicense `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/subjectExtendableLicense" iri-compact:"expandedlicensing_subjectExtendableLicense"` +} + +func NewWithAdditionOperator() IWithAdditionOperator { + return &WithAdditionOperator{} +} + +func (o *WithAdditionOperator) GetSpdxId() string { + return o.SpdxId +} +func (o *WithAdditionOperator) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *WithAdditionOperator) GetComment() string { + return o.Comment +} +func (o *WithAdditionOperator) SetComment(v string) { + o.Comment = v +} +func (o *WithAdditionOperator) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *WithAdditionOperator) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *WithAdditionOperator) GetDescription() string { + return o.Description +} +func (o *WithAdditionOperator) SetDescription(v string) { + o.Description = v +} +func (o *WithAdditionOperator) GetExtensions() []IExtension { + return o.Extensions +} +func (o *WithAdditionOperator) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *WithAdditionOperator) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *WithAdditionOperator) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *WithAdditionOperator) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *WithAdditionOperator) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *WithAdditionOperator) GetName() string { + return o.Name +} +func (o *WithAdditionOperator) SetName(v string) { + o.Name = v +} +func (o *WithAdditionOperator) GetSummary() string { + return o.Summary +} +func (o *WithAdditionOperator) SetSummary(v string) { + o.Summary = v +} +func (o *WithAdditionOperator) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *WithAdditionOperator) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *WithAdditionOperator) GetSubjectAddition() ILicenseAddition { + return o.SubjectAddition +} +func (o *WithAdditionOperator) SetSubjectAddition(v ILicenseAddition) { + o.SubjectAddition = v +} +func (o *WithAdditionOperator) GetSubjectExtendableLicense() IExtendableLicense { + return o.SubjectExtendableLicense +} +func (o *WithAdditionOperator) SetSubjectExtendableLicense(v IExtendableLicense) { + o.SubjectExtendableLicense = v +} + +type ICdxPropertiesExtension interface { + IExtension + + // GetCdxProperty provides a map of a property names to a values. + GetCdxProperty() []ICdxPropertyEntry + + SetCdxProperty(...ICdxPropertyEntry) +} + +type CdxPropertiesExtension struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Extension/CdxPropertiesExtension" iri-compact:"extension_CdxPropertiesExtension"` + + Iri string `iri:"@id"` + + // CdxProperty provides a map of a property names to a values. + CdxProperty []ICdxPropertyEntry `iri:"https://spdx.org/rdf/3.0.0/terms/Extension/cdxProperty" iri-compact:"extension_cdxProperty"` +} + +func NewCdxPropertiesExtension() ICdxPropertiesExtension { + return &CdxPropertiesExtension{} +} + +func (o *CdxPropertiesExtension) GetCdxProperty() []ICdxPropertyEntry { + return o.CdxProperty +} +func (o *CdxPropertiesExtension) SetCdxProperty(v ...ICdxPropertyEntry) { + o.CdxProperty = v +} + +type ICvssV2VulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetScore provides a numerical (0-10) representation of the severity of a vulnerability. + GetScore() float64 + + SetScore(float64) + + // GetVectorString specifies the CVSS vector string for a vulnerability. + GetVectorString() string + + SetVectorString(string) +} + +type CvssV2VulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/CvssV2VulnAssessmentRelationship" iri-compact:"security_CvssV2VulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // Score provides a numerical (0-10) representation of the severity of a vulnerability. + Score float64 `iri:"https://spdx.org/rdf/3.0.0/terms/Security/score" iri-compact:"security_score"` + // VectorString specifies the CVSS vector string for a vulnerability. + VectorString string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vectorString" iri-compact:"security_vectorString"` +} + +func NewCvssV2VulnAssessmentRelationship() ICvssV2VulnAssessmentRelationship { + return &CvssV2VulnAssessmentRelationship{} +} + +func (o *CvssV2VulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *CvssV2VulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *CvssV2VulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *CvssV2VulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *CvssV2VulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *CvssV2VulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *CvssV2VulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *CvssV2VulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *CvssV2VulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *CvssV2VulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *CvssV2VulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *CvssV2VulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *CvssV2VulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *CvssV2VulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *CvssV2VulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *CvssV2VulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *CvssV2VulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *CvssV2VulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *CvssV2VulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *CvssV2VulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *CvssV2VulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *CvssV2VulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *CvssV2VulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *CvssV2VulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *CvssV2VulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *CvssV2VulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *CvssV2VulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *CvssV2VulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *CvssV2VulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *CvssV2VulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *CvssV2VulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *CvssV2VulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *CvssV2VulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *CvssV2VulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *CvssV2VulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *CvssV2VulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *CvssV2VulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *CvssV2VulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *CvssV2VulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *CvssV2VulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *CvssV2VulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *CvssV2VulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *CvssV2VulnAssessmentRelationship) GetScore() float64 { + return o.Score +} +func (o *CvssV2VulnAssessmentRelationship) SetScore(v float64) { + o.Score = v +} +func (o *CvssV2VulnAssessmentRelationship) GetVectorString() string { + return o.VectorString +} +func (o *CvssV2VulnAssessmentRelationship) SetVectorString(v string) { + o.VectorString = v +} + +type ICvssV3VulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetScore provides a numerical (0-10) representation of the severity of a vulnerability. + GetScore() float64 + + SetScore(float64) + + // GetSeverity specifies the CVSS qualitative severity rating of a vulnerability in relation to a piece of software. + GetSeverity() CvssSeverityType + + SetSeverity(CvssSeverityType) + + // GetVectorString specifies the CVSS vector string for a vulnerability. + GetVectorString() string + + SetVectorString(string) +} + +type CvssV3VulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/CvssV3VulnAssessmentRelationship" iri-compact:"security_CvssV3VulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // Score provides a numerical (0-10) representation of the severity of a vulnerability. + Score float64 `iri:"https://spdx.org/rdf/3.0.0/terms/Security/score" iri-compact:"security_score"` + // Severity specifies the CVSS qualitative severity rating of a vulnerability in relation to a piece of software. + Severity CvssSeverityType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/severity" iri-compact:"security_severity"` + // VectorString specifies the CVSS vector string for a vulnerability. + VectorString string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vectorString" iri-compact:"security_vectorString"` +} + +func NewCvssV3VulnAssessmentRelationship() ICvssV3VulnAssessmentRelationship { + return &CvssV3VulnAssessmentRelationship{} +} + +func (o *CvssV3VulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *CvssV3VulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *CvssV3VulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *CvssV3VulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *CvssV3VulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *CvssV3VulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *CvssV3VulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *CvssV3VulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *CvssV3VulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *CvssV3VulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *CvssV3VulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *CvssV3VulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *CvssV3VulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *CvssV3VulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *CvssV3VulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *CvssV3VulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *CvssV3VulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *CvssV3VulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *CvssV3VulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *CvssV3VulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *CvssV3VulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *CvssV3VulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *CvssV3VulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *CvssV3VulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *CvssV3VulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *CvssV3VulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *CvssV3VulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *CvssV3VulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *CvssV3VulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *CvssV3VulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *CvssV3VulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *CvssV3VulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *CvssV3VulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *CvssV3VulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *CvssV3VulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *CvssV3VulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *CvssV3VulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *CvssV3VulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *CvssV3VulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *CvssV3VulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *CvssV3VulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *CvssV3VulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *CvssV3VulnAssessmentRelationship) GetScore() float64 { + return o.Score +} +func (o *CvssV3VulnAssessmentRelationship) SetScore(v float64) { + o.Score = v +} +func (o *CvssV3VulnAssessmentRelationship) GetSeverity() CvssSeverityType { + return o.Severity +} +func (o *CvssV3VulnAssessmentRelationship) SetSeverity(v CvssSeverityType) { + o.Severity = v +} +func (o *CvssV3VulnAssessmentRelationship) GetVectorString() string { + return o.VectorString +} +func (o *CvssV3VulnAssessmentRelationship) SetVectorString(v string) { + o.VectorString = v +} + +type ICvssV4VulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetScore provides a numerical (0-10) representation of the severity of a vulnerability. + GetScore() float64 + + SetScore(float64) + + // GetSeverity specifies the CVSS qualitative severity rating of a vulnerability in relation to a piece of software. + GetSeverity() CvssSeverityType + + SetSeverity(CvssSeverityType) + + // GetVectorString specifies the CVSS vector string for a vulnerability. + GetVectorString() string + + SetVectorString(string) +} + +type CvssV4VulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/CvssV4VulnAssessmentRelationship" iri-compact:"security_CvssV4VulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // Score provides a numerical (0-10) representation of the severity of a vulnerability. + Score float64 `iri:"https://spdx.org/rdf/3.0.0/terms/Security/score" iri-compact:"security_score"` + // Severity specifies the CVSS qualitative severity rating of a vulnerability in relation to a piece of software. + Severity CvssSeverityType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/severity" iri-compact:"security_severity"` + // VectorString specifies the CVSS vector string for a vulnerability. + VectorString string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vectorString" iri-compact:"security_vectorString"` +} + +func NewCvssV4VulnAssessmentRelationship() ICvssV4VulnAssessmentRelationship { + return &CvssV4VulnAssessmentRelationship{} +} + +func (o *CvssV4VulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *CvssV4VulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *CvssV4VulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *CvssV4VulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *CvssV4VulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *CvssV4VulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *CvssV4VulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *CvssV4VulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *CvssV4VulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *CvssV4VulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *CvssV4VulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *CvssV4VulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *CvssV4VulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *CvssV4VulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *CvssV4VulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *CvssV4VulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *CvssV4VulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *CvssV4VulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *CvssV4VulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *CvssV4VulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *CvssV4VulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *CvssV4VulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *CvssV4VulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *CvssV4VulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *CvssV4VulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *CvssV4VulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *CvssV4VulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *CvssV4VulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *CvssV4VulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *CvssV4VulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *CvssV4VulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *CvssV4VulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *CvssV4VulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *CvssV4VulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *CvssV4VulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *CvssV4VulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *CvssV4VulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *CvssV4VulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *CvssV4VulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *CvssV4VulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *CvssV4VulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *CvssV4VulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *CvssV4VulnAssessmentRelationship) GetScore() float64 { + return o.Score +} +func (o *CvssV4VulnAssessmentRelationship) SetScore(v float64) { + o.Score = v +} +func (o *CvssV4VulnAssessmentRelationship) GetSeverity() CvssSeverityType { + return o.Severity +} +func (o *CvssV4VulnAssessmentRelationship) SetSeverity(v CvssSeverityType) { + o.Severity = v +} +func (o *CvssV4VulnAssessmentRelationship) GetVectorString() string { + return o.VectorString +} +func (o *CvssV4VulnAssessmentRelationship) SetVectorString(v string) { + o.VectorString = v +} + +type IEpssVulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetPercentile the percentile of the current probability score. + GetPercentile() float64 + + SetPercentile(float64) + + // GetProbability a probability score between 0 and 1 of a vulnerability being exploited. + GetProbability() float64 + + SetProbability(float64) +} + +type EpssVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/EpssVulnAssessmentRelationship" iri-compact:"security_EpssVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // Percentile the percentile of the current probability score. + Percentile float64 `iri:"https://spdx.org/rdf/3.0.0/terms/Security/percentile" iri-compact:"security_percentile"` + // Probability a probability score between 0 and 1 of a vulnerability being exploited. + Probability float64 `iri:"https://spdx.org/rdf/3.0.0/terms/Security/probability" iri-compact:"security_probability"` +} + +func NewEpssVulnAssessmentRelationship() IEpssVulnAssessmentRelationship { + return &EpssVulnAssessmentRelationship{} +} + +func (o *EpssVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *EpssVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *EpssVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *EpssVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *EpssVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *EpssVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *EpssVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *EpssVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *EpssVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *EpssVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *EpssVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *EpssVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *EpssVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *EpssVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *EpssVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *EpssVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *EpssVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *EpssVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *EpssVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *EpssVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *EpssVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *EpssVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *EpssVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *EpssVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *EpssVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *EpssVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *EpssVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *EpssVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *EpssVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *EpssVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *EpssVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *EpssVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *EpssVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *EpssVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *EpssVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *EpssVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *EpssVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *EpssVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *EpssVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *EpssVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *EpssVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *EpssVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *EpssVulnAssessmentRelationship) GetPercentile() float64 { + return o.Percentile +} +func (o *EpssVulnAssessmentRelationship) SetPercentile(v float64) { + o.Percentile = v +} +func (o *EpssVulnAssessmentRelationship) GetProbability() float64 { + return o.Probability +} +func (o *EpssVulnAssessmentRelationship) SetProbability(v float64) { + o.Probability = v +} + +type IExploitCatalogVulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetCatalogType specifies the exploit catalog type. + GetCatalogType() ExploitCatalogType + + SetCatalogType(ExploitCatalogType) + + // GetExploited describe that a CVE is known to have an exploit because it's been listed in an exploit catalog. + GetExploited() bool + + SetExploited(bool) + + // GetLocator provides the location of an exploit catalog. + GetLocator() string + + SetLocator(string) +} + +type ExploitCatalogVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/ExploitCatalogVulnAssessmentRelationship" iri-compact:"security_ExploitCatalogVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // CatalogType specifies the exploit catalog type. + CatalogType ExploitCatalogType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/catalogType" iri-compact:"security_catalogType"` + // Exploited describe that a CVE is known to have an exploit because it's been listed in an exploit catalog. + Exploited bool `iri:"https://spdx.org/rdf/3.0.0/terms/Security/exploited" iri-compact:"security_exploited"` + // Locator provides the location of an exploit catalog. + Locator string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/locator" iri-compact:"security_locator"` +} + +func NewExploitCatalogVulnAssessmentRelationship() IExploitCatalogVulnAssessmentRelationship { + return &ExploitCatalogVulnAssessmentRelationship{} +} + +func (o *ExploitCatalogVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *ExploitCatalogVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *ExploitCatalogVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *ExploitCatalogVulnAssessmentRelationship) GetCatalogType() ExploitCatalogType { + return o.CatalogType +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetCatalogType(v ExploitCatalogType) { + o.CatalogType = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetExploited() bool { + return o.Exploited +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetExploited(v bool) { + o.Exploited = v +} +func (o *ExploitCatalogVulnAssessmentRelationship) GetLocator() string { + return o.Locator +} +func (o *ExploitCatalogVulnAssessmentRelationship) SetLocator(v string) { + o.Locator = v +} + +type ISsvcVulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetDecisionType provide the enumeration of possible decisions in the Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree [https://www.cisa.gov/sites/default/files/publications/cisa-ssvc-guide%20508c.pdf](https://www.cisa.gov/sites/default/files/publications/cisa-ssvc-guide%20508c.pdf) + GetDecisionType() SsvcDecisionType + + SetDecisionType(SsvcDecisionType) +} + +type SsvcVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/SsvcVulnAssessmentRelationship" iri-compact:"security_SsvcVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // DecisionType provide the enumeration of possible decisions in the Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree [https://www.cisa.gov/sites/default/files/publications/cisa-ssvc-guide%20508c.pdf](https://www.cisa.gov/sites/default/files/publications/cisa-ssvc-guide%20508c.pdf) + DecisionType SsvcDecisionType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/decisionType" iri-compact:"security_decisionType"` +} + +func NewSsvcVulnAssessmentRelationship() ISsvcVulnAssessmentRelationship { + return &SsvcVulnAssessmentRelationship{} +} + +func (o *SsvcVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *SsvcVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *SsvcVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *SsvcVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *SsvcVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *SsvcVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *SsvcVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *SsvcVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *SsvcVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *SsvcVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *SsvcVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *SsvcVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *SsvcVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *SsvcVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *SsvcVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *SsvcVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *SsvcVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *SsvcVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *SsvcVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *SsvcVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *SsvcVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *SsvcVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *SsvcVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *SsvcVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *SsvcVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *SsvcVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *SsvcVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *SsvcVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *SsvcVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *SsvcVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *SsvcVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *SsvcVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *SsvcVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *SsvcVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *SsvcVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *SsvcVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *SsvcVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *SsvcVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *SsvcVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *SsvcVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *SsvcVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *SsvcVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *SsvcVulnAssessmentRelationship) GetDecisionType() SsvcDecisionType { + return o.DecisionType +} +func (o *SsvcVulnAssessmentRelationship) SetDecisionType(v SsvcDecisionType) { + o.DecisionType = v +} + +type IVexVulnAssessmentRelationship interface { + IVulnAssessmentRelationship + + // GetStatusNotes conveys information about how VEX status was determined. + GetStatusNotes() string + + SetStatusNotes(string) + + // GetVexVersion specifies the version of a VEX statement. + GetVexVersion() string + + SetVexVersion(string) +} + +type VexVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VexVulnAssessmentRelationship" iri-compact:"security_VexVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // StatusNotes conveys information about how VEX status was determined. + StatusNotes string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/statusNotes" iri-compact:"security_statusNotes"` + // VexVersion specifies the version of a VEX statement. + VexVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vexVersion" iri-compact:"security_vexVersion"` +} + +func (o *VexVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *VexVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *VexVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *VexVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *VexVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *VexVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *VexVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *VexVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *VexVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *VexVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *VexVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *VexVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *VexVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *VexVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *VexVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *VexVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *VexVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *VexVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *VexVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *VexVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *VexVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *VexVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *VexVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *VexVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *VexVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *VexVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *VexVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *VexVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *VexVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *VexVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *VexVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *VexVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *VexVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *VexVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *VexVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *VexVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *VexVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *VexVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *VexVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *VexVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *VexVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *VexVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *VexVulnAssessmentRelationship) GetStatusNotes() string { + return o.StatusNotes +} +func (o *VexVulnAssessmentRelationship) SetStatusNotes(v string) { + o.StatusNotes = v +} +func (o *VexVulnAssessmentRelationship) GetVexVersion() string { + return o.VexVersion +} +func (o *VexVulnAssessmentRelationship) SetVexVersion(v string) { + o.VexVersion = v +} + +type IVulnerability interface { + IArtifact + + // GetModifiedTime specifies a time when a vulnerability assessment was modified + GetModifiedTime() string + + SetModifiedTime(string) + + // GetPublishedTime specifies the time when a vulnerability was published. + GetPublishedTime() string + + SetPublishedTime(string) + + // GetWithdrawnTime specified the time and date when a vulnerability was withdrawn. + GetWithdrawnTime() string + + SetWithdrawnTime(string) +} + +type Vulnerability struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/Vulnerability" iri-compact:"security_Vulnerability" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` +} + +func NewVulnerability() IVulnerability { + return &Vulnerability{} +} + +func (o *Vulnerability) GetSpdxId() string { + return o.SpdxId +} +func (o *Vulnerability) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Vulnerability) GetComment() string { + return o.Comment +} +func (o *Vulnerability) SetComment(v string) { + o.Comment = v +} +func (o *Vulnerability) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Vulnerability) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Vulnerability) GetDescription() string { + return o.Description +} +func (o *Vulnerability) SetDescription(v string) { + o.Description = v +} +func (o *Vulnerability) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Vulnerability) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Vulnerability) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Vulnerability) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Vulnerability) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Vulnerability) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Vulnerability) GetName() string { + return o.Name +} +func (o *Vulnerability) SetName(v string) { + o.Name = v +} +func (o *Vulnerability) GetSummary() string { + return o.Summary +} +func (o *Vulnerability) SetSummary(v string) { + o.Summary = v +} +func (o *Vulnerability) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Vulnerability) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Vulnerability) GetBuiltTime() string { + return o.BuiltTime +} +func (o *Vulnerability) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *Vulnerability) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *Vulnerability) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *Vulnerability) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *Vulnerability) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *Vulnerability) GetStandardName() []string { + return o.StandardName +} +func (o *Vulnerability) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *Vulnerability) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *Vulnerability) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *Vulnerability) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *Vulnerability) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *Vulnerability) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *Vulnerability) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *Vulnerability) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *Vulnerability) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *Vulnerability) GetPublishedTime() string { + return o.PublishedTime +} +func (o *Vulnerability) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *Vulnerability) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *Vulnerability) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +type ISoftwareArtifact interface { + IArtifact + + // GetAdditionalPurpose provides additional purpose information of the software artifact. + GetAdditionalPurpose() []SoftwarePurpose + + SetAdditionalPurpose(...SoftwarePurpose) + + // GetAttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + GetAttributionText() []string + + SetAttributionText(...string) + + // GetContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + GetContentIdentifier() []IContentIdentifier + + SetContentIdentifier(...IContentIdentifier) + + // GetCopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + GetCopyrightText() string + + SetCopyrightText(string) + + // GetPrimaryPurpose provides information about the primary purpose of the software artifact. + GetPrimaryPurpose() SoftwarePurpose + + SetPrimaryPurpose(SoftwarePurpose) +} + +type SoftwareArtifact struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/SoftwareArtifact" iri-compact:"software_SoftwareArtifact" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // AdditionalPurpose provides additional purpose information of the software artifact. + AdditionalPurpose []SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/additionalPurpose" iri-compact:"software_additionalPurpose"` + // AttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + AttributionText []string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/attributionText" iri-compact:"software_attributionText"` + // ContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + ContentIdentifier []IContentIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifier" iri-compact:"software_contentIdentifier"` + // CopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + CopyrightText string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/copyrightText" iri-compact:"software_copyrightText"` + // PrimaryPurpose provides information about the primary purpose of the software artifact. + PrimaryPurpose SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/primaryPurpose" iri-compact:"software_primaryPurpose"` +} + +func (o *SoftwareArtifact) GetSpdxId() string { + return o.SpdxId +} +func (o *SoftwareArtifact) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *SoftwareArtifact) GetComment() string { + return o.Comment +} +func (o *SoftwareArtifact) SetComment(v string) { + o.Comment = v +} +func (o *SoftwareArtifact) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *SoftwareArtifact) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *SoftwareArtifact) GetDescription() string { + return o.Description +} +func (o *SoftwareArtifact) SetDescription(v string) { + o.Description = v +} +func (o *SoftwareArtifact) GetExtensions() []IExtension { + return o.Extensions +} +func (o *SoftwareArtifact) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *SoftwareArtifact) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *SoftwareArtifact) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *SoftwareArtifact) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *SoftwareArtifact) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *SoftwareArtifact) GetName() string { + return o.Name +} +func (o *SoftwareArtifact) SetName(v string) { + o.Name = v +} +func (o *SoftwareArtifact) GetSummary() string { + return o.Summary +} +func (o *SoftwareArtifact) SetSummary(v string) { + o.Summary = v +} +func (o *SoftwareArtifact) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *SoftwareArtifact) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *SoftwareArtifact) GetBuiltTime() string { + return o.BuiltTime +} +func (o *SoftwareArtifact) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *SoftwareArtifact) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *SoftwareArtifact) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *SoftwareArtifact) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *SoftwareArtifact) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *SoftwareArtifact) GetStandardName() []string { + return o.StandardName +} +func (o *SoftwareArtifact) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *SoftwareArtifact) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *SoftwareArtifact) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *SoftwareArtifact) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *SoftwareArtifact) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *SoftwareArtifact) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *SoftwareArtifact) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *SoftwareArtifact) GetAdditionalPurpose() []SoftwarePurpose { + return o.AdditionalPurpose +} +func (o *SoftwareArtifact) SetAdditionalPurpose(v ...SoftwarePurpose) { + o.AdditionalPurpose = v +} +func (o *SoftwareArtifact) GetAttributionText() []string { + return o.AttributionText +} +func (o *SoftwareArtifact) SetAttributionText(v ...string) { + o.AttributionText = v +} +func (o *SoftwareArtifact) GetContentIdentifier() []IContentIdentifier { + return o.ContentIdentifier +} +func (o *SoftwareArtifact) SetContentIdentifier(v ...IContentIdentifier) { + o.ContentIdentifier = v +} +func (o *SoftwareArtifact) GetCopyrightText() string { + return o.CopyrightText +} +func (o *SoftwareArtifact) SetCopyrightText(v string) { + o.CopyrightText = v +} +func (o *SoftwareArtifact) GetPrimaryPurpose() SoftwarePurpose { + return o.PrimaryPurpose +} +func (o *SoftwareArtifact) SetPrimaryPurpose(v SoftwarePurpose) { + o.PrimaryPurpose = v +} + +type IBom interface { + IBundle +} + +type Bom struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/Bom" iri-compact:"Bom" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Elements refers to one or more Elements that are part of an ElementCollection. + Elements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/element" iri-compact:"element"` + // ProfileConformance describes one a profile which the creator of this ElementCollection intends to + // conform to. + ProfileConformance []ProfileIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/profileConformance" iri-compact:"profileConformance"` + // RootElements this property is used to denote the root Element(s) of a tree of elements contained in a BOM. + RootElements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/rootElement" iri-compact:"rootElement"` + + // Context gives information about the circumstances or unifying properties + // that Elements of the bundle have been assembled under. + Context string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/context" iri-compact:"context"` +} + +func NewBom() IBom { + return &Bom{} +} + +func (o *Bom) GetSpdxId() string { + return o.SpdxId +} +func (o *Bom) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Bom) GetComment() string { + return o.Comment +} +func (o *Bom) SetComment(v string) { + o.Comment = v +} +func (o *Bom) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Bom) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Bom) GetDescription() string { + return o.Description +} +func (o *Bom) SetDescription(v string) { + o.Description = v +} +func (o *Bom) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Bom) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Bom) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Bom) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Bom) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Bom) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Bom) GetName() string { + return o.Name +} +func (o *Bom) SetName(v string) { + o.Name = v +} +func (o *Bom) GetSummary() string { + return o.Summary +} +func (o *Bom) SetSummary(v string) { + o.Summary = v +} +func (o *Bom) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Bom) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Bom) GetElements() []IElement { + return o.Elements +} +func (o *Bom) SetElements(v ...IElement) { + o.Elements = v +} +func (o *Bom) GetProfileConformance() []ProfileIdentifierType { + return o.ProfileConformance +} +func (o *Bom) SetProfileConformance(v ...ProfileIdentifierType) { + o.ProfileConformance = v +} +func (o *Bom) GetRootElements() []IElement { + return o.RootElements +} +func (o *Bom) SetRootElements(v ...IElement) { + o.RootElements = v +} + +func (o *Bom) GetContext() string { + return o.Context +} +func (o *Bom) SetContext(v string) { + o.Context = v +} + +type ICustomLicense interface { + ILicense +} + +type CustomLicense struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/CustomLicense" iri-compact:"expandedlicensing_CustomLicense" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // IsDeprecatedLicenseId specifies whether a license or additional text identifier has been marked as + // deprecated. + IsDeprecatedLicenseId bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isDeprecatedLicenseId" iri-compact:"expandedlicensing_isDeprecatedLicenseId"` + // IsFsfLibre specifies whether the License is listed as free by the + // [Free Software Foundation (FSF)](https://fsf.org). + IsFsfLibre bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isFsfLibre" iri-compact:"expandedlicensing_isFsfLibre"` + // IsOsiApproved specifies whether the License is listed as approved by the + // [Open Source Initiative (OSI)](https://opensource.org). + IsOsiApproved bool `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/isOsiApproved" iri-compact:"expandedlicensing_isOsiApproved"` + // LicenseXml identifies all the text and metadata associated with a license in the license + // XML format. + LicenseXml string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/licenseXml" iri-compact:"expandedlicensing_licenseXml"` + // ObsoletedBy specifies the licenseId that is preferred to be used in place of a deprecated + // License or LicenseAddition. + ObsoletedBy string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/obsoletedBy" iri-compact:"expandedlicensing_obsoletedBy"` + // SeeAlso contains a URL where the License or LicenseAddition can be found in use. + SeeAlso []string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/seeAlso" iri-compact:"expandedlicensing_seeAlso"` + // StandardLicenseHeader provides a License author's preferred text to indicate that a file is covered + // by the License. + StandardLicenseHeader string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardLicenseHeader" iri-compact:"expandedlicensing_standardLicenseHeader"` + // StandardLicenseTemplate identifies the full text of a License, in SPDX templating format. + StandardLicenseTemplate string `iri:"https://spdx.org/rdf/3.0.0/terms/ExpandedLicensing/standardLicenseTemplate" iri-compact:"expandedlicensing_standardLicenseTemplate"` + // LicenseText identifies the full text of a License or Addition. + LicenseText string `iri:"https://spdx.org/rdf/3.0.0/terms/SimpleLicensing/licenseText" iri-compact:"simplelicensing_licenseText"` +} + +func NewCustomLicense() ICustomLicense { + return &CustomLicense{} +} + +func (o *CustomLicense) GetSpdxId() string { + return o.SpdxId +} +func (o *CustomLicense) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *CustomLicense) GetComment() string { + return o.Comment +} +func (o *CustomLicense) SetComment(v string) { + o.Comment = v +} +func (o *CustomLicense) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *CustomLicense) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *CustomLicense) GetDescription() string { + return o.Description +} +func (o *CustomLicense) SetDescription(v string) { + o.Description = v +} +func (o *CustomLicense) GetExtensions() []IExtension { + return o.Extensions +} +func (o *CustomLicense) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *CustomLicense) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *CustomLicense) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *CustomLicense) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *CustomLicense) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *CustomLicense) GetName() string { + return o.Name +} +func (o *CustomLicense) SetName(v string) { + o.Name = v +} +func (o *CustomLicense) GetSummary() string { + return o.Summary +} +func (o *CustomLicense) SetSummary(v string) { + o.Summary = v +} +func (o *CustomLicense) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *CustomLicense) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *CustomLicense) GetIsDeprecatedLicenseId() bool { + return o.IsDeprecatedLicenseId +} +func (o *CustomLicense) SetIsDeprecatedLicenseId(v bool) { + o.IsDeprecatedLicenseId = v +} +func (o *CustomLicense) GetIsFsfLibre() bool { + return o.IsFsfLibre +} +func (o *CustomLicense) SetIsFsfLibre(v bool) { + o.IsFsfLibre = v +} +func (o *CustomLicense) GetIsOsiApproved() bool { + return o.IsOsiApproved +} +func (o *CustomLicense) SetIsOsiApproved(v bool) { + o.IsOsiApproved = v +} +func (o *CustomLicense) GetLicenseXml() string { + return o.LicenseXml +} +func (o *CustomLicense) SetLicenseXml(v string) { + o.LicenseXml = v +} +func (o *CustomLicense) GetObsoletedBy() string { + return o.ObsoletedBy +} +func (o *CustomLicense) SetObsoletedBy(v string) { + o.ObsoletedBy = v +} +func (o *CustomLicense) GetSeeAlso() []string { + return o.SeeAlso +} +func (o *CustomLicense) SetSeeAlso(v ...string) { + o.SeeAlso = v +} +func (o *CustomLicense) GetStandardLicenseHeader() string { + return o.StandardLicenseHeader +} +func (o *CustomLicense) SetStandardLicenseHeader(v string) { + o.StandardLicenseHeader = v +} +func (o *CustomLicense) GetStandardLicenseTemplate() string { + return o.StandardLicenseTemplate +} +func (o *CustomLicense) SetStandardLicenseTemplate(v string) { + o.StandardLicenseTemplate = v +} +func (o *CustomLicense) GetLicenseText() string { + return o.LicenseText +} +func (o *CustomLicense) SetLicenseText(v string) { + o.LicenseText = v +} + +type IVexAffectedVulnAssessmentRelationship interface { + IVexVulnAssessmentRelationship + + // GetActionStatement provides advise on how to mitigate or remediate a vulnerability when a VEX product + // is affected by it. + GetActionStatement() string + + SetActionStatement(string) + + // GetActionStatementTime records the time when a recommended action was communicated in a VEX statement + // to mitigate a vulnerability. + GetActionStatementTime() []string + + SetActionStatementTime(...string) +} + +type VexAffectedVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VexAffectedVulnAssessmentRelationship" iri-compact:"security_VexAffectedVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // StatusNotes conveys information about how VEX status was determined. + StatusNotes string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/statusNotes" iri-compact:"security_statusNotes"` + // VexVersion specifies the version of a VEX statement. + VexVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vexVersion" iri-compact:"security_vexVersion"` + + // ActionStatement provides advise on how to mitigate or remediate a vulnerability when a VEX product + // is affected by it. + ActionStatement string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/actionStatement" iri-compact:"security_actionStatement"` + // ActionStatementTime records the time when a recommended action was communicated in a VEX statement + // to mitigate a vulnerability. + ActionStatementTime []string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/actionStatementTime" iri-compact:"security_actionStatementTime"` +} + +func NewVexAffectedVulnAssessmentRelationship() IVexAffectedVulnAssessmentRelationship { + return &VexAffectedVulnAssessmentRelationship{} +} + +func (o *VexAffectedVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *VexAffectedVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *VexAffectedVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *VexAffectedVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *VexAffectedVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *VexAffectedVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *VexAffectedVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *VexAffectedVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *VexAffectedVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *VexAffectedVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *VexAffectedVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *VexAffectedVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *VexAffectedVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *VexAffectedVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *VexAffectedVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *VexAffectedVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *VexAffectedVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *VexAffectedVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *VexAffectedVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *VexAffectedVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *VexAffectedVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *VexAffectedVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *VexAffectedVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *VexAffectedVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *VexAffectedVulnAssessmentRelationship) GetStatusNotes() string { + return o.StatusNotes +} +func (o *VexAffectedVulnAssessmentRelationship) SetStatusNotes(v string) { + o.StatusNotes = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetVexVersion() string { + return o.VexVersion +} +func (o *VexAffectedVulnAssessmentRelationship) SetVexVersion(v string) { + o.VexVersion = v +} + +func (o *VexAffectedVulnAssessmentRelationship) GetActionStatement() string { + return o.ActionStatement +} +func (o *VexAffectedVulnAssessmentRelationship) SetActionStatement(v string) { + o.ActionStatement = v +} +func (o *VexAffectedVulnAssessmentRelationship) GetActionStatementTime() []string { + return o.ActionStatementTime +} +func (o *VexAffectedVulnAssessmentRelationship) SetActionStatementTime(v ...string) { + o.ActionStatementTime = v +} + +type IVexFixedVulnAssessmentRelationship interface { + IVexVulnAssessmentRelationship +} + +type VexFixedVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VexFixedVulnAssessmentRelationship" iri-compact:"security_VexFixedVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // StatusNotes conveys information about how VEX status was determined. + StatusNotes string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/statusNotes" iri-compact:"security_statusNotes"` + // VexVersion specifies the version of a VEX statement. + VexVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vexVersion" iri-compact:"security_vexVersion"` +} + +func NewVexFixedVulnAssessmentRelationship() IVexFixedVulnAssessmentRelationship { + return &VexFixedVulnAssessmentRelationship{} +} + +func (o *VexFixedVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *VexFixedVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *VexFixedVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *VexFixedVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *VexFixedVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *VexFixedVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *VexFixedVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *VexFixedVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *VexFixedVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *VexFixedVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *VexFixedVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *VexFixedVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *VexFixedVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *VexFixedVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *VexFixedVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *VexFixedVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *VexFixedVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *VexFixedVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *VexFixedVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *VexFixedVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *VexFixedVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *VexFixedVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *VexFixedVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *VexFixedVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *VexFixedVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *VexFixedVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *VexFixedVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *VexFixedVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *VexFixedVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *VexFixedVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *VexFixedVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *VexFixedVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *VexFixedVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *VexFixedVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *VexFixedVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *VexFixedVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *VexFixedVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *VexFixedVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *VexFixedVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *VexFixedVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *VexFixedVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *VexFixedVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *VexFixedVulnAssessmentRelationship) GetStatusNotes() string { + return o.StatusNotes +} +func (o *VexFixedVulnAssessmentRelationship) SetStatusNotes(v string) { + o.StatusNotes = v +} +func (o *VexFixedVulnAssessmentRelationship) GetVexVersion() string { + return o.VexVersion +} +func (o *VexFixedVulnAssessmentRelationship) SetVexVersion(v string) { + o.VexVersion = v +} + +type IVexNotAffectedVulnAssessmentRelationship interface { + IVexVulnAssessmentRelationship + + // GetImpactStatement explains why a VEX product is not affected by a vulnerability. It is an + // alternative in VexNotAffectedVulnAssessmentRelationship to the machine-readable + // justification label. + GetImpactStatement() string + + SetImpactStatement(string) + + // GetImpactStatementTime timestamp of impact statement. + GetImpactStatementTime() string + + SetImpactStatementTime(string) + + // GetJustificationType impact justification label to be used when linking a vulnerability to an element + // representing a VEX product with a VexNotAffectedVulnAssessmentRelationship + // relationship. + GetJustificationType() VexJustificationType + + SetJustificationType(VexJustificationType) +} + +type VexNotAffectedVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VexNotAffectedVulnAssessmentRelationship" iri-compact:"security_VexNotAffectedVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // StatusNotes conveys information about how VEX status was determined. + StatusNotes string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/statusNotes" iri-compact:"security_statusNotes"` + // VexVersion specifies the version of a VEX statement. + VexVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vexVersion" iri-compact:"security_vexVersion"` + + // ImpactStatement explains why a VEX product is not affected by a vulnerability. It is an + // alternative in VexNotAffectedVulnAssessmentRelationship to the machine-readable + // justification label. + ImpactStatement string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/impactStatement" iri-compact:"security_impactStatement"` + // ImpactStatementTime timestamp of impact statement. + ImpactStatementTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/impactStatementTime" iri-compact:"security_impactStatementTime"` + // JustificationType impact justification label to be used when linking a vulnerability to an element + // representing a VEX product with a VexNotAffectedVulnAssessmentRelationship + // relationship. + JustificationType VexJustificationType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/justificationType" iri-compact:"security_justificationType"` +} + +func NewVexNotAffectedVulnAssessmentRelationship() IVexNotAffectedVulnAssessmentRelationship { + return &VexNotAffectedVulnAssessmentRelationship{} +} + +func (o *VexNotAffectedVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *VexNotAffectedVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *VexNotAffectedVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *VexNotAffectedVulnAssessmentRelationship) GetStatusNotes() string { + return o.StatusNotes +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetStatusNotes(v string) { + o.StatusNotes = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetVexVersion() string { + return o.VexVersion +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetVexVersion(v string) { + o.VexVersion = v +} + +func (o *VexNotAffectedVulnAssessmentRelationship) GetImpactStatement() string { + return o.ImpactStatement +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetImpactStatement(v string) { + o.ImpactStatement = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetImpactStatementTime() string { + return o.ImpactStatementTime +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetImpactStatementTime(v string) { + o.ImpactStatementTime = v +} +func (o *VexNotAffectedVulnAssessmentRelationship) GetJustificationType() VexJustificationType { + return o.JustificationType +} +func (o *VexNotAffectedVulnAssessmentRelationship) SetJustificationType(v VexJustificationType) { + o.JustificationType = v +} + +type IVexUnderInvestigationVulnAssessmentRelationship interface { + IVexVulnAssessmentRelationship +} + +type VexUnderInvestigationVulnAssessmentRelationship struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Security/VexUnderInvestigationVulnAssessmentRelationship" iri-compact:"security_VexUnderInvestigationVulnAssessmentRelationship" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Completeness provides information about the completeness of relationships. + Completeness RelationshipCompleteness `iri:"https://spdx.org/rdf/3.0.0/terms/Core/completeness" iri-compact:"completeness"` + // EndTime specifies the time from which an element is no longer applicable / valid. + EndTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/endTime" iri-compact:"endTime"` + // From references the Element on the left-hand side of a relationship. + From IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/from" iri-compact:"from"` + // RelationshipType information about the relationship between two Elements. + RelationshipType RelationshipType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/relationshipType" iri-compact:"relationshipType"` + // StartTime specifies the time from which an element is applicable / valid. + StartTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/startTime" iri-compact:"startTime"` + // To references an Element on the right-hand side of a relationship. + To []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/to" iri-compact:"to"` + + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // AssessedElement specifies an Element contained in a piece of software where a vulnerability was + // found. + AssessedElement IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Security/assessedElement" iri-compact:"security_assessedElement"` + // ModifiedTime specifies a time when a vulnerability assessment was modified + ModifiedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/modifiedTime" iri-compact:"security_modifiedTime"` + // PublishedTime specifies the time when a vulnerability was published. + PublishedTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/publishedTime" iri-compact:"security_publishedTime"` + // WithdrawnTime specified the time and date when a vulnerability was withdrawn. + WithdrawnTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/withdrawnTime" iri-compact:"security_withdrawnTime"` + + // StatusNotes conveys information about how VEX status was determined. + StatusNotes string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/statusNotes" iri-compact:"security_statusNotes"` + // VexVersion specifies the version of a VEX statement. + VexVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Security/vexVersion" iri-compact:"security_vexVersion"` +} + +func NewVexUnderInvestigationVulnAssessmentRelationship() IVexUnderInvestigationVulnAssessmentRelationship { + return &VexUnderInvestigationVulnAssessmentRelationship{} +} + +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetSpdxId() string { + return o.SpdxId +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetComment() string { + return o.Comment +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetComment(v string) { + o.Comment = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetDescription() string { + return o.Description +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetDescription(v string) { + o.Description = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetExtensions() []IExtension { + return o.Extensions +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetName() string { + return o.Name +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetName(v string) { + o.Name = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetSummary() string { + return o.Summary +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetSummary(v string) { + o.Summary = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetCompleteness() RelationshipCompleteness { + return o.Completeness +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetCompleteness(v RelationshipCompleteness) { + o.Completeness = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetEndTime() string { + return o.EndTime +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetEndTime(v string) { + o.EndTime = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetFrom() IElement { + return o.From +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetFrom(v IElement) { + o.From = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetRelationshipType() RelationshipType { + return o.RelationshipType +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetRelationshipType(v RelationshipType) { + o.RelationshipType = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetStartTime() string { + return o.StartTime +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetStartTime(v string) { + o.StartTime = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetTo() []IElement { + return o.To +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetTo(v ...IElement) { + o.To = v +} + +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetAssessedElement() IElement { + return o.AssessedElement +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetAssessedElement(v IElement) { + o.AssessedElement = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetModifiedTime() string { + return o.ModifiedTime +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetModifiedTime(v string) { + o.ModifiedTime = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetPublishedTime() string { + return o.PublishedTime +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetPublishedTime(v string) { + o.PublishedTime = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetWithdrawnTime() string { + return o.WithdrawnTime +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetWithdrawnTime(v string) { + o.WithdrawnTime = v +} + +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetStatusNotes() string { + return o.StatusNotes +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetStatusNotes(v string) { + o.StatusNotes = v +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) GetVexVersion() string { + return o.VexVersion +} +func (o *VexUnderInvestigationVulnAssessmentRelationship) SetVexVersion(v string) { + o.VexVersion = v +} + +type IFile interface { + ISoftwareArtifact + + // GetContentType provides information about the content type of an Element. + GetContentType() string + + SetContentType(string) + + // GetFileKind describes if a given file is a directory or non-directory kind of file. + GetFileKind() FileKindType + + SetFileKind(FileKindType) +} + +type File struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/File" iri-compact:"software_File" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // AdditionalPurpose provides additional purpose information of the software artifact. + AdditionalPurpose []SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/additionalPurpose" iri-compact:"software_additionalPurpose"` + // AttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + AttributionText []string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/attributionText" iri-compact:"software_attributionText"` + // ContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + ContentIdentifier []IContentIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifier" iri-compact:"software_contentIdentifier"` + // CopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + CopyrightText string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/copyrightText" iri-compact:"software_copyrightText"` + // PrimaryPurpose provides information about the primary purpose of the software artifact. + PrimaryPurpose SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/primaryPurpose" iri-compact:"software_primaryPurpose"` + + // ContentType provides information about the content type of an Element. + ContentType string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentType" iri-compact:"software_contentType"` + // FileKind describes if a given file is a directory or non-directory kind of file. + FileKind FileKindType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/fileKind" iri-compact:"software_fileKind"` +} + +func NewFile() IFile { + return &File{} +} + +func (o *File) GetSpdxId() string { + return o.SpdxId +} +func (o *File) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *File) GetComment() string { + return o.Comment +} +func (o *File) SetComment(v string) { + o.Comment = v +} +func (o *File) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *File) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *File) GetDescription() string { + return o.Description +} +func (o *File) SetDescription(v string) { + o.Description = v +} +func (o *File) GetExtensions() []IExtension { + return o.Extensions +} +func (o *File) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *File) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *File) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *File) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *File) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *File) GetName() string { + return o.Name +} +func (o *File) SetName(v string) { + o.Name = v +} +func (o *File) GetSummary() string { + return o.Summary +} +func (o *File) SetSummary(v string) { + o.Summary = v +} +func (o *File) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *File) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *File) GetBuiltTime() string { + return o.BuiltTime +} +func (o *File) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *File) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *File) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *File) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *File) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *File) GetStandardName() []string { + return o.StandardName +} +func (o *File) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *File) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *File) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *File) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *File) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *File) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *File) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *File) GetAdditionalPurpose() []SoftwarePurpose { + return o.AdditionalPurpose +} +func (o *File) SetAdditionalPurpose(v ...SoftwarePurpose) { + o.AdditionalPurpose = v +} +func (o *File) GetAttributionText() []string { + return o.AttributionText +} +func (o *File) SetAttributionText(v ...string) { + o.AttributionText = v +} +func (o *File) GetContentIdentifier() []IContentIdentifier { + return o.ContentIdentifier +} +func (o *File) SetContentIdentifier(v ...IContentIdentifier) { + o.ContentIdentifier = v +} +func (o *File) GetCopyrightText() string { + return o.CopyrightText +} +func (o *File) SetCopyrightText(v string) { + o.CopyrightText = v +} +func (o *File) GetPrimaryPurpose() SoftwarePurpose { + return o.PrimaryPurpose +} +func (o *File) SetPrimaryPurpose(v SoftwarePurpose) { + o.PrimaryPurpose = v +} + +func (o *File) GetContentType() string { + return o.ContentType +} +func (o *File) SetContentType(v string) { + o.ContentType = v +} +func (o *File) GetFileKind() FileKindType { + return o.FileKind +} +func (o *File) SetFileKind(v FileKindType) { + o.FileKind = v +} + +type IPackage interface { + ISoftwareArtifact + + // GetDownloadLocation identifies the download Uniform Resource Identifier for the package at the time + // that the document was created. + GetDownloadLocation() string + + SetDownloadLocation(string) + + // GetHomePage a place for the SPDX document creator to record a website that serves as the + // package's home page. + GetHomePage() string + + SetHomePage(string) + + // GetPackageUrl provides a place for the SPDX data creator to record the package URL string + // (in accordance with the + // [package URL spec](https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst)) + // for a software Package. + GetPackageUrl() string + + SetPackageUrl(string) + + // GetPackageVersion identify the version of a package. + GetPackageVersion() string + + SetPackageVersion(string) + + // GetSourceInfo records any relevant background information or additional comments + // about the origin of the package. + GetSourceInfo() string + + SetSourceInfo(string) +} + +type Package struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/Package" iri-compact:"software_Package" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // AdditionalPurpose provides additional purpose information of the software artifact. + AdditionalPurpose []SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/additionalPurpose" iri-compact:"software_additionalPurpose"` + // AttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + AttributionText []string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/attributionText" iri-compact:"software_attributionText"` + // ContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + ContentIdentifier []IContentIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifier" iri-compact:"software_contentIdentifier"` + // CopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + CopyrightText string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/copyrightText" iri-compact:"software_copyrightText"` + // PrimaryPurpose provides information about the primary purpose of the software artifact. + PrimaryPurpose SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/primaryPurpose" iri-compact:"software_primaryPurpose"` + + // DownloadLocation identifies the download Uniform Resource Identifier for the package at the time + // that the document was created. + DownloadLocation string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/downloadLocation" iri-compact:"software_downloadLocation"` + // HomePage a place for the SPDX document creator to record a website that serves as the + // package's home page. + HomePage string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/homePage" iri-compact:"software_homePage"` + // PackageUrl provides a place for the SPDX data creator to record the package URL string + // (in accordance with the + // [package URL spec](https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst)) + // for a software Package. + PackageUrl string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/packageUrl" iri-compact:"software_packageUrl"` + // PackageVersion identify the version of a package. + PackageVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/packageVersion" iri-compact:"software_packageVersion"` + // SourceInfo records any relevant background information or additional comments + // about the origin of the package. + SourceInfo string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/sourceInfo" iri-compact:"software_sourceInfo"` +} + +func NewPackage() IPackage { + return &Package{} +} + +func (o *Package) GetSpdxId() string { + return o.SpdxId +} +func (o *Package) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Package) GetComment() string { + return o.Comment +} +func (o *Package) SetComment(v string) { + o.Comment = v +} +func (o *Package) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Package) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Package) GetDescription() string { + return o.Description +} +func (o *Package) SetDescription(v string) { + o.Description = v +} +func (o *Package) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Package) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Package) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Package) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Package) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Package) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Package) GetName() string { + return o.Name +} +func (o *Package) SetName(v string) { + o.Name = v +} +func (o *Package) GetSummary() string { + return o.Summary +} +func (o *Package) SetSummary(v string) { + o.Summary = v +} +func (o *Package) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Package) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Package) GetBuiltTime() string { + return o.BuiltTime +} +func (o *Package) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *Package) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *Package) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *Package) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *Package) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *Package) GetStandardName() []string { + return o.StandardName +} +func (o *Package) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *Package) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *Package) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *Package) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *Package) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *Package) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *Package) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *Package) GetAdditionalPurpose() []SoftwarePurpose { + return o.AdditionalPurpose +} +func (o *Package) SetAdditionalPurpose(v ...SoftwarePurpose) { + o.AdditionalPurpose = v +} +func (o *Package) GetAttributionText() []string { + return o.AttributionText +} +func (o *Package) SetAttributionText(v ...string) { + o.AttributionText = v +} +func (o *Package) GetContentIdentifier() []IContentIdentifier { + return o.ContentIdentifier +} +func (o *Package) SetContentIdentifier(v ...IContentIdentifier) { + o.ContentIdentifier = v +} +func (o *Package) GetCopyrightText() string { + return o.CopyrightText +} +func (o *Package) SetCopyrightText(v string) { + o.CopyrightText = v +} +func (o *Package) GetPrimaryPurpose() SoftwarePurpose { + return o.PrimaryPurpose +} +func (o *Package) SetPrimaryPurpose(v SoftwarePurpose) { + o.PrimaryPurpose = v +} + +func (o *Package) GetDownloadLocation() string { + return o.DownloadLocation +} +func (o *Package) SetDownloadLocation(v string) { + o.DownloadLocation = v +} +func (o *Package) GetHomePage() string { + return o.HomePage +} +func (o *Package) SetHomePage(v string) { + o.HomePage = v +} +func (o *Package) GetPackageUrl() string { + return o.PackageUrl +} +func (o *Package) SetPackageUrl(v string) { + o.PackageUrl = v +} +func (o *Package) GetPackageVersion() string { + return o.PackageVersion +} +func (o *Package) SetPackageVersion(v string) { + o.PackageVersion = v +} +func (o *Package) GetSourceInfo() string { + return o.SourceInfo +} +func (o *Package) SetSourceInfo(v string) { + o.SourceInfo = v +} + +type ISbom interface { + IBom + + // GetSbomType provides information about the type of an SBOM. + GetSbomType() []SbomType + + SetSbomType(...SbomType) +} + +type Sbom struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/Sbom" iri-compact:"software_Sbom" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // Elements refers to one or more Elements that are part of an ElementCollection. + Elements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/element" iri-compact:"element"` + // ProfileConformance describes one a profile which the creator of this ElementCollection intends to + // conform to. + ProfileConformance []ProfileIdentifierType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/profileConformance" iri-compact:"profileConformance"` + // RootElements this property is used to denote the root Element(s) of a tree of elements contained in a BOM. + RootElements []IElement `iri:"https://spdx.org/rdf/3.0.0/terms/Core/rootElement" iri-compact:"rootElement"` + + // Context gives information about the circumstances or unifying properties + // that Elements of the bundle have been assembled under. + Context string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/context" iri-compact:"context"` + + // SbomType provides information about the type of an SBOM. + SbomType []SbomType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/sbomType" iri-compact:"software_sbomType"` +} + +func NewSbom() ISbom { + return &Sbom{} +} + +func (o *Sbom) GetSpdxId() string { + return o.SpdxId +} +func (o *Sbom) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Sbom) GetComment() string { + return o.Comment +} +func (o *Sbom) SetComment(v string) { + o.Comment = v +} +func (o *Sbom) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Sbom) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Sbom) GetDescription() string { + return o.Description +} +func (o *Sbom) SetDescription(v string) { + o.Description = v +} +func (o *Sbom) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Sbom) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Sbom) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Sbom) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Sbom) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Sbom) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Sbom) GetName() string { + return o.Name +} +func (o *Sbom) SetName(v string) { + o.Name = v +} +func (o *Sbom) GetSummary() string { + return o.Summary +} +func (o *Sbom) SetSummary(v string) { + o.Summary = v +} +func (o *Sbom) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Sbom) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Sbom) GetElements() []IElement { + return o.Elements +} +func (o *Sbom) SetElements(v ...IElement) { + o.Elements = v +} +func (o *Sbom) GetProfileConformance() []ProfileIdentifierType { + return o.ProfileConformance +} +func (o *Sbom) SetProfileConformance(v ...ProfileIdentifierType) { + o.ProfileConformance = v +} +func (o *Sbom) GetRootElements() []IElement { + return o.RootElements +} +func (o *Sbom) SetRootElements(v ...IElement) { + o.RootElements = v +} + +func (o *Sbom) GetContext() string { + return o.Context +} +func (o *Sbom) SetContext(v string) { + o.Context = v +} + +func (o *Sbom) GetSbomType() []SbomType { + return o.SbomType +} +func (o *Sbom) SetSbomType(v ...SbomType) { + o.SbomType = v +} + +type ISnippet interface { + ISoftwareArtifact + + // GetByteRange defines the byte range in the original host file that the snippet information + // applies to. + GetByteRange() IPositiveIntegerRange + + SetByteRange(IPositiveIntegerRange) + + // GetLineRange defines the line range in the original host file that the snippet information + // applies to. + GetLineRange() IPositiveIntegerRange + + SetLineRange(IPositiveIntegerRange) + + // GetSnippetFromFile defines the original host file that the snippet information applies to. + GetSnippetFromFile() IFile + + SetSnippetFromFile(IFile) +} + +type Snippet struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Software/Snippet" iri-compact:"software_Snippet" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // AdditionalPurpose provides additional purpose information of the software artifact. + AdditionalPurpose []SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/additionalPurpose" iri-compact:"software_additionalPurpose"` + // AttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + AttributionText []string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/attributionText" iri-compact:"software_attributionText"` + // ContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + ContentIdentifier []IContentIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifier" iri-compact:"software_contentIdentifier"` + // CopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + CopyrightText string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/copyrightText" iri-compact:"software_copyrightText"` + // PrimaryPurpose provides information about the primary purpose of the software artifact. + PrimaryPurpose SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/primaryPurpose" iri-compact:"software_primaryPurpose"` + + // ByteRange defines the byte range in the original host file that the snippet information + // applies to. + ByteRange IPositiveIntegerRange `iri:"https://spdx.org/rdf/3.0.0/terms/Software/byteRange" iri-compact:"software_byteRange"` + // LineRange defines the line range in the original host file that the snippet information + // applies to. + LineRange IPositiveIntegerRange `iri:"https://spdx.org/rdf/3.0.0/terms/Software/lineRange" iri-compact:"software_lineRange"` + // SnippetFromFile defines the original host file that the snippet information applies to. + SnippetFromFile IFile `iri:"https://spdx.org/rdf/3.0.0/terms/Software/snippetFromFile" iri-compact:"software_snippetFromFile"` +} + +func NewSnippet() ISnippet { + return &Snippet{} +} + +func (o *Snippet) GetSpdxId() string { + return o.SpdxId +} +func (o *Snippet) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *Snippet) GetComment() string { + return o.Comment +} +func (o *Snippet) SetComment(v string) { + o.Comment = v +} +func (o *Snippet) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *Snippet) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *Snippet) GetDescription() string { + return o.Description +} +func (o *Snippet) SetDescription(v string) { + o.Description = v +} +func (o *Snippet) GetExtensions() []IExtension { + return o.Extensions +} +func (o *Snippet) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *Snippet) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *Snippet) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *Snippet) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *Snippet) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *Snippet) GetName() string { + return o.Name +} +func (o *Snippet) SetName(v string) { + o.Name = v +} +func (o *Snippet) GetSummary() string { + return o.Summary +} +func (o *Snippet) SetSummary(v string) { + o.Summary = v +} +func (o *Snippet) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *Snippet) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *Snippet) GetBuiltTime() string { + return o.BuiltTime +} +func (o *Snippet) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *Snippet) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *Snippet) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *Snippet) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *Snippet) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *Snippet) GetStandardName() []string { + return o.StandardName +} +func (o *Snippet) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *Snippet) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *Snippet) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *Snippet) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *Snippet) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *Snippet) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *Snippet) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *Snippet) GetAdditionalPurpose() []SoftwarePurpose { + return o.AdditionalPurpose +} +func (o *Snippet) SetAdditionalPurpose(v ...SoftwarePurpose) { + o.AdditionalPurpose = v +} +func (o *Snippet) GetAttributionText() []string { + return o.AttributionText +} +func (o *Snippet) SetAttributionText(v ...string) { + o.AttributionText = v +} +func (o *Snippet) GetContentIdentifier() []IContentIdentifier { + return o.ContentIdentifier +} +func (o *Snippet) SetContentIdentifier(v ...IContentIdentifier) { + o.ContentIdentifier = v +} +func (o *Snippet) GetCopyrightText() string { + return o.CopyrightText +} +func (o *Snippet) SetCopyrightText(v string) { + o.CopyrightText = v +} +func (o *Snippet) GetPrimaryPurpose() SoftwarePurpose { + return o.PrimaryPurpose +} +func (o *Snippet) SetPrimaryPurpose(v SoftwarePurpose) { + o.PrimaryPurpose = v +} + +func (o *Snippet) GetByteRange() IPositiveIntegerRange { + return o.ByteRange +} +func (o *Snippet) SetByteRange(v IPositiveIntegerRange) { + o.ByteRange = v +} +func (o *Snippet) GetLineRange() IPositiveIntegerRange { + return o.LineRange +} +func (o *Snippet) SetLineRange(v IPositiveIntegerRange) { + o.LineRange = v +} +func (o *Snippet) GetSnippetFromFile() IFile { + return o.SnippetFromFile +} +func (o *Snippet) SetSnippetFromFile(v IFile) { + o.SnippetFromFile = v +} + +type IAIPackage interface { + IPackage + + // GetAutonomyType states if a human is involved in the decisions of the AI software. + GetAutonomyType() PresenceType + + SetAutonomyType(PresenceType) + + // GetDomain captures the domain in which the AI package can be used. + GetDomain() []string + + SetDomain(...string) + + // GetEnergyConsumption indicates the amount of energy consumed to train the AI model. + GetEnergyConsumption() IEnergyConsumption + + SetEnergyConsumption(IEnergyConsumption) + + // GetHyperparameter records a hyperparameter used to build the AI model contained in the AI + // package. + GetHyperparameter() []IDictionaryEntry + + SetHyperparameter(...IDictionaryEntry) + + // GetInformationAboutApplication provides relevant information about the AI software, not including the model + // description. + GetInformationAboutApplication() string + + SetInformationAboutApplication(string) + + // GetInformationAboutTraining describes relevant information about different steps of the training process. + GetInformationAboutTraining() string + + SetInformationAboutTraining(string) + + // GetLimitation captures a limitation of the AI software. + GetLimitation() string + + SetLimitation(string) + + // GetMetric records the measurement of prediction quality of the AI model. + GetMetric() []IDictionaryEntry + + SetMetric(...IDictionaryEntry) + + // GetMetricDecisionThreshold captures the threshold that was used for computation of a metric described in + // the metric field. + GetMetricDecisionThreshold() []IDictionaryEntry + + SetMetricDecisionThreshold(...IDictionaryEntry) + + // GetModelDataPreprocessing describes all the preprocessing steps applied to the training data before the + // model training. + GetModelDataPreprocessing() []string + + SetModelDataPreprocessing(...string) + + // GetModelExplainability describes methods that can be used to explain the model. + GetModelExplainability() []string + + SetModelExplainability(...string) + + // GetSafetyRiskAssessment records the results of general safety risk assessment of the AI system. + GetSafetyRiskAssessment() SafetyRiskAssessmentType + + SetSafetyRiskAssessment(SafetyRiskAssessmentType) + + // GetStandardCompliance captures a standard that is being complied with. + GetStandardCompliance() []string + + SetStandardCompliance(...string) + + // GetTypeOfModel records the type of the model used in the AI software. + GetTypeOfModel() []string + + SetTypeOfModel(...string) + + // GetUseSensitivePersonalInformation records if sensitive personal information is used during model training or + // could be used during the inference. + GetUseSensitivePersonalInformation() PresenceType + + SetUseSensitivePersonalInformation(PresenceType) +} + +type AIPackage struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/AIPackage" iri-compact:"ai_AIPackage" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // AdditionalPurpose provides additional purpose information of the software artifact. + AdditionalPurpose []SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/additionalPurpose" iri-compact:"software_additionalPurpose"` + // AttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + AttributionText []string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/attributionText" iri-compact:"software_attributionText"` + // ContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + ContentIdentifier []IContentIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifier" iri-compact:"software_contentIdentifier"` + // CopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + CopyrightText string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/copyrightText" iri-compact:"software_copyrightText"` + // PrimaryPurpose provides information about the primary purpose of the software artifact. + PrimaryPurpose SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/primaryPurpose" iri-compact:"software_primaryPurpose"` + + // DownloadLocation identifies the download Uniform Resource Identifier for the package at the time + // that the document was created. + DownloadLocation string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/downloadLocation" iri-compact:"software_downloadLocation"` + // HomePage a place for the SPDX document creator to record a website that serves as the + // package's home page. + HomePage string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/homePage" iri-compact:"software_homePage"` + // PackageUrl provides a place for the SPDX data creator to record the package URL string + // (in accordance with the + // [package URL spec](https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst)) + // for a software Package. + PackageUrl string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/packageUrl" iri-compact:"software_packageUrl"` + // PackageVersion identify the version of a package. + PackageVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/packageVersion" iri-compact:"software_packageVersion"` + // SourceInfo records any relevant background information or additional comments + // about the origin of the package. + SourceInfo string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/sourceInfo" iri-compact:"software_sourceInfo"` + + // AutonomyType states if a human is involved in the decisions of the AI software. + AutonomyType PresenceType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/autonomyType" iri-compact:"ai_autonomyType"` + // Domain captures the domain in which the AI package can be used. + Domain []string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/domain" iri-compact:"ai_domain"` + // EnergyConsumption indicates the amount of energy consumed to train the AI model. + EnergyConsumption IEnergyConsumption `iri:"https://spdx.org/rdf/3.0.0/terms/AI/energyConsumption" iri-compact:"ai_energyConsumption"` + // Hyperparameter records a hyperparameter used to build the AI model contained in the AI + // package. + Hyperparameter []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/AI/hyperparameter" iri-compact:"ai_hyperparameter"` + // InformationAboutApplication provides relevant information about the AI software, not including the model + // description. + InformationAboutApplication string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/informationAboutApplication" iri-compact:"ai_informationAboutApplication"` + // InformationAboutTraining describes relevant information about different steps of the training process. + InformationAboutTraining string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/informationAboutTraining" iri-compact:"ai_informationAboutTraining"` + // Limitation captures a limitation of the AI software. + Limitation string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/limitation" iri-compact:"ai_limitation"` + // Metric records the measurement of prediction quality of the AI model. + Metric []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/AI/metric" iri-compact:"ai_metric"` + // MetricDecisionThreshold captures the threshold that was used for computation of a metric described in + // the metric field. + MetricDecisionThreshold []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/AI/metricDecisionThreshold" iri-compact:"ai_metricDecisionThreshold"` + // ModelDataPreprocessing describes all the preprocessing steps applied to the training data before the + // model training. + ModelDataPreprocessing []string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/modelDataPreprocessing" iri-compact:"ai_modelDataPreprocessing"` + // ModelExplainability describes methods that can be used to explain the model. + ModelExplainability []string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/modelExplainability" iri-compact:"ai_modelExplainability"` + // SafetyRiskAssessment records the results of general safety risk assessment of the AI system. + SafetyRiskAssessment SafetyRiskAssessmentType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/safetyRiskAssessment" iri-compact:"ai_safetyRiskAssessment"` + // StandardCompliance captures a standard that is being complied with. + StandardCompliance []string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/standardCompliance" iri-compact:"ai_standardCompliance"` + // TypeOfModel records the type of the model used in the AI software. + TypeOfModel []string `iri:"https://spdx.org/rdf/3.0.0/terms/AI/typeOfModel" iri-compact:"ai_typeOfModel"` + // UseSensitivePersonalInformation records if sensitive personal information is used during model training or + // could be used during the inference. + UseSensitivePersonalInformation PresenceType `iri:"https://spdx.org/rdf/3.0.0/terms/AI/useSensitivePersonalInformation" iri-compact:"ai_useSensitivePersonalInformation"` +} + +func NewAIPackage() IAIPackage { + return &AIPackage{} +} + +func (o *AIPackage) GetSpdxId() string { + return o.SpdxId +} +func (o *AIPackage) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *AIPackage) GetComment() string { + return o.Comment +} +func (o *AIPackage) SetComment(v string) { + o.Comment = v +} +func (o *AIPackage) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *AIPackage) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *AIPackage) GetDescription() string { + return o.Description +} +func (o *AIPackage) SetDescription(v string) { + o.Description = v +} +func (o *AIPackage) GetExtensions() []IExtension { + return o.Extensions +} +func (o *AIPackage) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *AIPackage) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *AIPackage) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *AIPackage) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *AIPackage) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *AIPackage) GetName() string { + return o.Name +} +func (o *AIPackage) SetName(v string) { + o.Name = v +} +func (o *AIPackage) GetSummary() string { + return o.Summary +} +func (o *AIPackage) SetSummary(v string) { + o.Summary = v +} +func (o *AIPackage) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *AIPackage) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *AIPackage) GetBuiltTime() string { + return o.BuiltTime +} +func (o *AIPackage) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *AIPackage) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *AIPackage) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *AIPackage) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *AIPackage) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *AIPackage) GetStandardName() []string { + return o.StandardName +} +func (o *AIPackage) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *AIPackage) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *AIPackage) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *AIPackage) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *AIPackage) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *AIPackage) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *AIPackage) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *AIPackage) GetAdditionalPurpose() []SoftwarePurpose { + return o.AdditionalPurpose +} +func (o *AIPackage) SetAdditionalPurpose(v ...SoftwarePurpose) { + o.AdditionalPurpose = v +} +func (o *AIPackage) GetAttributionText() []string { + return o.AttributionText +} +func (o *AIPackage) SetAttributionText(v ...string) { + o.AttributionText = v +} +func (o *AIPackage) GetContentIdentifier() []IContentIdentifier { + return o.ContentIdentifier +} +func (o *AIPackage) SetContentIdentifier(v ...IContentIdentifier) { + o.ContentIdentifier = v +} +func (o *AIPackage) GetCopyrightText() string { + return o.CopyrightText +} +func (o *AIPackage) SetCopyrightText(v string) { + o.CopyrightText = v +} +func (o *AIPackage) GetPrimaryPurpose() SoftwarePurpose { + return o.PrimaryPurpose +} +func (o *AIPackage) SetPrimaryPurpose(v SoftwarePurpose) { + o.PrimaryPurpose = v +} + +func (o *AIPackage) GetDownloadLocation() string { + return o.DownloadLocation +} +func (o *AIPackage) SetDownloadLocation(v string) { + o.DownloadLocation = v +} +func (o *AIPackage) GetHomePage() string { + return o.HomePage +} +func (o *AIPackage) SetHomePage(v string) { + o.HomePage = v +} +func (o *AIPackage) GetPackageUrl() string { + return o.PackageUrl +} +func (o *AIPackage) SetPackageUrl(v string) { + o.PackageUrl = v +} +func (o *AIPackage) GetPackageVersion() string { + return o.PackageVersion +} +func (o *AIPackage) SetPackageVersion(v string) { + o.PackageVersion = v +} +func (o *AIPackage) GetSourceInfo() string { + return o.SourceInfo +} +func (o *AIPackage) SetSourceInfo(v string) { + o.SourceInfo = v +} + +func (o *AIPackage) GetAutonomyType() PresenceType { + return o.AutonomyType +} +func (o *AIPackage) SetAutonomyType(v PresenceType) { + o.AutonomyType = v +} +func (o *AIPackage) GetDomain() []string { + return o.Domain +} +func (o *AIPackage) SetDomain(v ...string) { + o.Domain = v +} +func (o *AIPackage) GetEnergyConsumption() IEnergyConsumption { + return o.EnergyConsumption +} +func (o *AIPackage) SetEnergyConsumption(v IEnergyConsumption) { + o.EnergyConsumption = v +} +func (o *AIPackage) GetHyperparameter() []IDictionaryEntry { + return o.Hyperparameter +} +func (o *AIPackage) SetHyperparameter(v ...IDictionaryEntry) { + o.Hyperparameter = v +} +func (o *AIPackage) GetInformationAboutApplication() string { + return o.InformationAboutApplication +} +func (o *AIPackage) SetInformationAboutApplication(v string) { + o.InformationAboutApplication = v +} +func (o *AIPackage) GetInformationAboutTraining() string { + return o.InformationAboutTraining +} +func (o *AIPackage) SetInformationAboutTraining(v string) { + o.InformationAboutTraining = v +} +func (o *AIPackage) GetLimitation() string { + return o.Limitation +} +func (o *AIPackage) SetLimitation(v string) { + o.Limitation = v +} +func (o *AIPackage) GetMetric() []IDictionaryEntry { + return o.Metric +} +func (o *AIPackage) SetMetric(v ...IDictionaryEntry) { + o.Metric = v +} +func (o *AIPackage) GetMetricDecisionThreshold() []IDictionaryEntry { + return o.MetricDecisionThreshold +} +func (o *AIPackage) SetMetricDecisionThreshold(v ...IDictionaryEntry) { + o.MetricDecisionThreshold = v +} +func (o *AIPackage) GetModelDataPreprocessing() []string { + return o.ModelDataPreprocessing +} +func (o *AIPackage) SetModelDataPreprocessing(v ...string) { + o.ModelDataPreprocessing = v +} +func (o *AIPackage) GetModelExplainability() []string { + return o.ModelExplainability +} +func (o *AIPackage) SetModelExplainability(v ...string) { + o.ModelExplainability = v +} +func (o *AIPackage) GetSafetyRiskAssessment() SafetyRiskAssessmentType { + return o.SafetyRiskAssessment +} +func (o *AIPackage) SetSafetyRiskAssessment(v SafetyRiskAssessmentType) { + o.SafetyRiskAssessment = v +} +func (o *AIPackage) GetStandardCompliance() []string { + return o.StandardCompliance +} +func (o *AIPackage) SetStandardCompliance(v ...string) { + o.StandardCompliance = v +} +func (o *AIPackage) GetTypeOfModel() []string { + return o.TypeOfModel +} +func (o *AIPackage) SetTypeOfModel(v ...string) { + o.TypeOfModel = v +} +func (o *AIPackage) GetUseSensitivePersonalInformation() PresenceType { + return o.UseSensitivePersonalInformation +} +func (o *AIPackage) SetUseSensitivePersonalInformation(v PresenceType) { + o.UseSensitivePersonalInformation = v +} + +type IDatasetPackage interface { + IPackage + + // GetAnonymizationMethodUsed describes the anonymization methods used. + GetAnonymizationMethodUsed() []string + + SetAnonymizationMethodUsed(...string) + + // GetConfidentialityLevel describes the confidentiality level of the data points contained in the dataset. + GetConfidentialityLevel() ConfidentialityLevelType + + SetConfidentialityLevel(ConfidentialityLevelType) + + // GetDataCollectionProcess describes how the dataset was collected. + GetDataCollectionProcess() string + + SetDataCollectionProcess(string) + + // GetDataPreprocessing describes the preprocessing steps that were applied to the raw data to create the given dataset. + GetDataPreprocessing() []string + + SetDataPreprocessing(...string) + + // GetDatasetAvailability the field describes the availability of a dataset. + GetDatasetAvailability() DatasetAvailabilityType + + SetDatasetAvailability(DatasetAvailabilityType) + + // GetDatasetNoise describes potentially noisy elements of the dataset. + GetDatasetNoise() string + + SetDatasetNoise(string) + + // GetDatasetSize captures the size of the dataset. + GetDatasetSize() uint + + SetDatasetSize(uint) + + // GetDatasetType describes the type of the given dataset. + GetDatasetType() []DatasetType + + SetDatasetType(...DatasetType) + + // GetDatasetUpdateMechanism describes a mechanism to update the dataset. + GetDatasetUpdateMechanism() string + + SetDatasetUpdateMechanism(string) + + // GetHasSensitivePersonalInformation describes if any sensitive personal information is present in the dataset. + GetHasSensitivePersonalInformation() PresenceType + + SetHasSensitivePersonalInformation(PresenceType) + + // GetIntendedUse describes what the given dataset should be used for. + GetIntendedUse() string + + SetIntendedUse(string) + + // GetKnownBias records the biases that the dataset is known to encompass. + GetKnownBias() []string + + SetKnownBias(...string) + + // GetSensor describes a sensor used for collecting the data. + GetSensor() []IDictionaryEntry + + SetSensor(...IDictionaryEntry) +} + +type DatasetPackage struct { + _ ldType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetPackage" iri-compact:"dataset_DatasetPackage" id-prop:"spdxId"` + + // SpdxId identifier property + SpdxId string `iri:"@id" iri-compact:"spdxId"` + // Comment provide consumers with comments by the creator of the Element about the + // Element. + Comment string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/comment" iri-compact:"comment"` + // CreationInfo provides information about the creation of the Element. + CreationInfo ICreationInfo `iri:"https://spdx.org/rdf/3.0.0/terms/Core/creationInfo" iri-compact:"creationInfo"` + // Description provides a detailed description of the Element. + Description string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/description" iri-compact:"description"` + // Extensions specifies an Extension characterization of some aspect of an Element. + Extensions []IExtension `iri:"https://spdx.org/rdf/3.0.0/terms/Core/extension" iri-compact:"extension"` + // ExternalIdentifiers provides a reference to a resource outside the scope of SPDX-3.0 content + // that uniquely identifies an Element. + ExternalIdentifiers []IExternalIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalIdentifier" iri-compact:"externalIdentifier"` + // ExternalRefs points to a resource outside the scope of the SPDX-3.0 content + // that provides additional characteristics of an Element. + ExternalRefs []IExternalRef `iri:"https://spdx.org/rdf/3.0.0/terms/Core/externalRef" iri-compact:"externalRef"` + // Name identifies the name of an Element as designated by the creator. + Name string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/name" iri-compact:"name"` + // Summary a short description of an Element. + Summary string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/summary" iri-compact:"summary"` + // VerifiedUsing provides an IntegrityMethod with which the integrity of an Element can be + // asserted. + VerifiedUsing []IIntegrityMethod `iri:"https://spdx.org/rdf/3.0.0/terms/Core/verifiedUsing" iri-compact:"verifiedUsing"` + + // BuiltTime specifies the time an artifact was built. + BuiltTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/builtTime" iri-compact:"builtTime"` + // OriginatedBy identifies from where or whom the Element originally came. + OriginatedBy []IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/originatedBy" iri-compact:"originatedBy"` + // ReleaseTime specifies the time an artifact was released. + ReleaseTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/releaseTime" iri-compact:"releaseTime"` + // StandardName the name of a relevant standard that may apply to an artifact. + StandardName []string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/standardName" iri-compact:"standardName"` + // SuppliedBy identifies who or what supplied the artifact or VulnAssessmentRelationship + // referenced by the Element. + SuppliedBy IAgent `iri:"https://spdx.org/rdf/3.0.0/terms/Core/suppliedBy" iri-compact:"suppliedBy"` + // SupportLevel specifies the level of support associated with an artifact. + SupportLevel []SupportType `iri:"https://spdx.org/rdf/3.0.0/terms/Core/supportLevel" iri-compact:"supportLevel"` + // ValidUntilTime specifies until when the artifact can be used before its usage needs to be + // reassessed. + ValidUntilTime string `iri:"https://spdx.org/rdf/3.0.0/terms/Core/validUntilTime" iri-compact:"validUntilTime"` + + // AdditionalPurpose provides additional purpose information of the software artifact. + AdditionalPurpose []SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/additionalPurpose" iri-compact:"software_additionalPurpose"` + // AttributionText provides a place for the SPDX data creator to record acknowledgement text for + // a software Package, File or Snippet. + AttributionText []string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/attributionText" iri-compact:"software_attributionText"` + // ContentIdentifier a canonical, unique, immutable identifier of the artifact content, that may be + // used for verifying its identity and/or integrity. + ContentIdentifier []IContentIdentifier `iri:"https://spdx.org/rdf/3.0.0/terms/Software/contentIdentifier" iri-compact:"software_contentIdentifier"` + // CopyrightText identifies the text of one or more copyright notices for a software Package, + // File or Snippet, if any. + CopyrightText string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/copyrightText" iri-compact:"software_copyrightText"` + // PrimaryPurpose provides information about the primary purpose of the software artifact. + PrimaryPurpose SoftwarePurpose `iri:"https://spdx.org/rdf/3.0.0/terms/Software/primaryPurpose" iri-compact:"software_primaryPurpose"` + + // DownloadLocation identifies the download Uniform Resource Identifier for the package at the time + // that the document was created. + DownloadLocation string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/downloadLocation" iri-compact:"software_downloadLocation"` + // HomePage a place for the SPDX document creator to record a website that serves as the + // package's home page. + HomePage string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/homePage" iri-compact:"software_homePage"` + // PackageUrl provides a place for the SPDX data creator to record the package URL string + // (in accordance with the + // [package URL spec](https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst)) + // for a software Package. + PackageUrl string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/packageUrl" iri-compact:"software_packageUrl"` + // PackageVersion identify the version of a package. + PackageVersion string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/packageVersion" iri-compact:"software_packageVersion"` + // SourceInfo records any relevant background information or additional comments + // about the origin of the package. + SourceInfo string `iri:"https://spdx.org/rdf/3.0.0/terms/Software/sourceInfo" iri-compact:"software_sourceInfo"` + + // AnonymizationMethodUsed describes the anonymization methods used. + AnonymizationMethodUsed []string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/anonymizationMethodUsed" iri-compact:"dataset_anonymizationMethodUsed"` + // ConfidentialityLevel describes the confidentiality level of the data points contained in the dataset. + ConfidentialityLevel ConfidentialityLevelType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/confidentialityLevel" iri-compact:"dataset_confidentialityLevel"` + // DataCollectionProcess describes how the dataset was collected. + DataCollectionProcess string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/dataCollectionProcess" iri-compact:"dataset_dataCollectionProcess"` + // DataPreprocessing describes the preprocessing steps that were applied to the raw data to create the given dataset. + DataPreprocessing []string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/dataPreprocessing" iri-compact:"dataset_dataPreprocessing"` + // DatasetAvailability the field describes the availability of a dataset. + DatasetAvailability DatasetAvailabilityType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/datasetAvailability" iri-compact:"dataset_datasetAvailability"` + // DatasetNoise describes potentially noisy elements of the dataset. + DatasetNoise string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/datasetNoise" iri-compact:"dataset_datasetNoise"` + // DatasetSize captures the size of the dataset. + DatasetSize uint `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/datasetSize" iri-compact:"dataset_datasetSize"` + // DatasetType describes the type of the given dataset. + DatasetType []DatasetType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/datasetType" iri-compact:"dataset_datasetType"` + // DatasetUpdateMechanism describes a mechanism to update the dataset. + DatasetUpdateMechanism string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/datasetUpdateMechanism" iri-compact:"dataset_datasetUpdateMechanism"` + // HasSensitivePersonalInformation describes if any sensitive personal information is present in the dataset. + HasSensitivePersonalInformation PresenceType `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/hasSensitivePersonalInformation" iri-compact:"dataset_hasSensitivePersonalInformation"` + // IntendedUse describes what the given dataset should be used for. + IntendedUse string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/intendedUse" iri-compact:"dataset_intendedUse"` + // KnownBias records the biases that the dataset is known to encompass. + KnownBias []string `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/knownBias" iri-compact:"dataset_knownBias"` + // Sensor describes a sensor used for collecting the data. + Sensor []IDictionaryEntry `iri:"https://spdx.org/rdf/3.0.0/terms/Dataset/sensor" iri-compact:"dataset_sensor"` +} + +func NewDatasetPackage() IDatasetPackage { + return &DatasetPackage{} +} + +func (o *DatasetPackage) GetSpdxId() string { + return o.SpdxId +} +func (o *DatasetPackage) SetSpdxId(v string) { + o.SpdxId = v +} +func (o *DatasetPackage) GetComment() string { + return o.Comment +} +func (o *DatasetPackage) SetComment(v string) { + o.Comment = v +} +func (o *DatasetPackage) GetCreationInfo() ICreationInfo { + return o.CreationInfo +} +func (o *DatasetPackage) SetCreationInfo(v ICreationInfo) { + o.CreationInfo = v +} +func (o *DatasetPackage) GetDescription() string { + return o.Description +} +func (o *DatasetPackage) SetDescription(v string) { + o.Description = v +} +func (o *DatasetPackage) GetExtensions() []IExtension { + return o.Extensions +} +func (o *DatasetPackage) SetExtensions(v ...IExtension) { + o.Extensions = v +} +func (o *DatasetPackage) GetExternalIdentifiers() []IExternalIdentifier { + return o.ExternalIdentifiers +} +func (o *DatasetPackage) SetExternalIdentifiers(v ...IExternalIdentifier) { + o.ExternalIdentifiers = v +} +func (o *DatasetPackage) GetExternalRefs() []IExternalRef { + return o.ExternalRefs +} +func (o *DatasetPackage) SetExternalRefs(v ...IExternalRef) { + o.ExternalRefs = v +} +func (o *DatasetPackage) GetName() string { + return o.Name +} +func (o *DatasetPackage) SetName(v string) { + o.Name = v +} +func (o *DatasetPackage) GetSummary() string { + return o.Summary +} +func (o *DatasetPackage) SetSummary(v string) { + o.Summary = v +} +func (o *DatasetPackage) GetVerifiedUsing() []IIntegrityMethod { + return o.VerifiedUsing +} +func (o *DatasetPackage) SetVerifiedUsing(v ...IIntegrityMethod) { + o.VerifiedUsing = v +} + +func (o *DatasetPackage) GetBuiltTime() string { + return o.BuiltTime +} +func (o *DatasetPackage) SetBuiltTime(v string) { + o.BuiltTime = v +} +func (o *DatasetPackage) GetOriginatedBy() []IAgent { + return o.OriginatedBy +} +func (o *DatasetPackage) SetOriginatedBy(v ...IAgent) { + o.OriginatedBy = v +} +func (o *DatasetPackage) GetReleaseTime() string { + return o.ReleaseTime +} +func (o *DatasetPackage) SetReleaseTime(v string) { + o.ReleaseTime = v +} +func (o *DatasetPackage) GetStandardName() []string { + return o.StandardName +} +func (o *DatasetPackage) SetStandardName(v ...string) { + o.StandardName = v +} +func (o *DatasetPackage) GetSuppliedBy() IAgent { + return o.SuppliedBy +} +func (o *DatasetPackage) SetSuppliedBy(v IAgent) { + o.SuppliedBy = v +} +func (o *DatasetPackage) GetSupportLevel() []SupportType { + return o.SupportLevel +} +func (o *DatasetPackage) SetSupportLevel(v ...SupportType) { + o.SupportLevel = v +} +func (o *DatasetPackage) GetValidUntilTime() string { + return o.ValidUntilTime +} +func (o *DatasetPackage) SetValidUntilTime(v string) { + o.ValidUntilTime = v +} + +func (o *DatasetPackage) GetAdditionalPurpose() []SoftwarePurpose { + return o.AdditionalPurpose +} +func (o *DatasetPackage) SetAdditionalPurpose(v ...SoftwarePurpose) { + o.AdditionalPurpose = v +} +func (o *DatasetPackage) GetAttributionText() []string { + return o.AttributionText +} +func (o *DatasetPackage) SetAttributionText(v ...string) { + o.AttributionText = v +} +func (o *DatasetPackage) GetContentIdentifier() []IContentIdentifier { + return o.ContentIdentifier +} +func (o *DatasetPackage) SetContentIdentifier(v ...IContentIdentifier) { + o.ContentIdentifier = v +} +func (o *DatasetPackage) GetCopyrightText() string { + return o.CopyrightText +} +func (o *DatasetPackage) SetCopyrightText(v string) { + o.CopyrightText = v +} +func (o *DatasetPackage) GetPrimaryPurpose() SoftwarePurpose { + return o.PrimaryPurpose +} +func (o *DatasetPackage) SetPrimaryPurpose(v SoftwarePurpose) { + o.PrimaryPurpose = v +} + +func (o *DatasetPackage) GetDownloadLocation() string { + return o.DownloadLocation +} +func (o *DatasetPackage) SetDownloadLocation(v string) { + o.DownloadLocation = v +} +func (o *DatasetPackage) GetHomePage() string { + return o.HomePage +} +func (o *DatasetPackage) SetHomePage(v string) { + o.HomePage = v +} +func (o *DatasetPackage) GetPackageUrl() string { + return o.PackageUrl +} +func (o *DatasetPackage) SetPackageUrl(v string) { + o.PackageUrl = v +} +func (o *DatasetPackage) GetPackageVersion() string { + return o.PackageVersion +} +func (o *DatasetPackage) SetPackageVersion(v string) { + o.PackageVersion = v +} +func (o *DatasetPackage) GetSourceInfo() string { + return o.SourceInfo +} +func (o *DatasetPackage) SetSourceInfo(v string) { + o.SourceInfo = v +} + +func (o *DatasetPackage) GetAnonymizationMethodUsed() []string { + return o.AnonymizationMethodUsed +} +func (o *DatasetPackage) SetAnonymizationMethodUsed(v ...string) { + o.AnonymizationMethodUsed = v +} +func (o *DatasetPackage) GetConfidentialityLevel() ConfidentialityLevelType { + return o.ConfidentialityLevel +} +func (o *DatasetPackage) SetConfidentialityLevel(v ConfidentialityLevelType) { + o.ConfidentialityLevel = v +} +func (o *DatasetPackage) GetDataCollectionProcess() string { + return o.DataCollectionProcess +} +func (o *DatasetPackage) SetDataCollectionProcess(v string) { + o.DataCollectionProcess = v +} +func (o *DatasetPackage) GetDataPreprocessing() []string { + return o.DataPreprocessing +} +func (o *DatasetPackage) SetDataPreprocessing(v ...string) { + o.DataPreprocessing = v +} +func (o *DatasetPackage) GetDatasetAvailability() DatasetAvailabilityType { + return o.DatasetAvailability +} +func (o *DatasetPackage) SetDatasetAvailability(v DatasetAvailabilityType) { + o.DatasetAvailability = v +} +func (o *DatasetPackage) GetDatasetNoise() string { + return o.DatasetNoise +} +func (o *DatasetPackage) SetDatasetNoise(v string) { + o.DatasetNoise = v +} +func (o *DatasetPackage) GetDatasetSize() uint { + return o.DatasetSize +} +func (o *DatasetPackage) SetDatasetSize(v uint) { + o.DatasetSize = v +} +func (o *DatasetPackage) GetDatasetType() []DatasetType { + return o.DatasetType +} +func (o *DatasetPackage) SetDatasetType(v ...DatasetType) { + o.DatasetType = v +} +func (o *DatasetPackage) GetDatasetUpdateMechanism() string { + return o.DatasetUpdateMechanism +} +func (o *DatasetPackage) SetDatasetUpdateMechanism(v string) { + o.DatasetUpdateMechanism = v +} +func (o *DatasetPackage) GetHasSensitivePersonalInformation() PresenceType { + return o.HasSensitivePersonalInformation +} +func (o *DatasetPackage) SetHasSensitivePersonalInformation(v PresenceType) { + o.HasSensitivePersonalInformation = v +} +func (o *DatasetPackage) GetIntendedUse() string { + return o.IntendedUse +} +func (o *DatasetPackage) SetIntendedUse(v string) { + o.IntendedUse = v +} +func (o *DatasetPackage) GetKnownBias() []string { + return o.KnownBias +} +func (o *DatasetPackage) SetKnownBias(v ...string) { + o.KnownBias = v +} +func (o *DatasetPackage) GetSensor() []IDictionaryEntry { + return o.Sensor +} +func (o *DatasetPackage) SetSensor(v ...IDictionaryEntry) { + o.Sensor = v +} + +var ldGlobal = ldContext{}. + RegisterTypes("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", + &EnergyConsumption{}, + &EnergyConsumptionDescription{}, + &EnergyUnitType{}, + &SafetyRiskAssessmentType{}, + &AnnotationType{}, + &CreationInfo{}, + &DictionaryEntry{}, + &Element{}, + &ElementCollection{}, + &ExternalIdentifier{}, + &ExternalIdentifierType{}, + &ExternalMap{}, + &ExternalRef{}, + &ExternalRefType{}, + &HashAlgorithm{}, + &IntegrityMethod{}, + &LifecycleScopeType{}, + &NamespaceMap{}, + &PackageVerificationCode{}, + &PositiveIntegerRange{}, + &PresenceType{}, + &ProfileIdentifierType{}, + &Relationship{}, + &RelationshipCompleteness{}, + &RelationshipType{}, + &SpdxDocument{}, + &SupportType{}, + &Tool{}, + &ConfidentialityLevelType{}, + &DatasetAvailabilityType{}, + &DatasetType{}, + &LicenseAddition{}, + &ListedLicenseException{}, + &CdxPropertyEntry{}, + &Extension{}, + &CvssSeverityType{}, + &ExploitCatalogType{}, + &SsvcDecisionType{}, + &VexJustificationType{}, + &VulnAssessmentRelationship{}, + &AnyLicenseInfo{}, + &LicenseExpression{}, + &SimpleLicensingText{}, + &ContentIdentifier{}, + &ContentIdentifierType{}, + &FileKindType{}, + &SbomType{}, + &SoftwarePurpose{}, + &Build{}, + &Agent{}, + &Annotation{}, + &Artifact{}, + &Bundle{}, + &Hash{}, + &LifecycleScopedRelationship{}, + &Organization{}, + &Person{}, + &SoftwareAgent{}, + &ConjunctiveLicenseSet{}, + &CustomLicenseAddition{}, + &DisjunctiveLicenseSet{}, + &ExtendableLicense{}, + &IndividualLicensingInfo{}, + &License{}, + &ListedLicense{}, + &OrLaterOperator{}, + &WithAdditionOperator{}, + &CdxPropertiesExtension{}, + &CvssV2VulnAssessmentRelationship{}, + &CvssV3VulnAssessmentRelationship{}, + &CvssV4VulnAssessmentRelationship{}, + &EpssVulnAssessmentRelationship{}, + &ExploitCatalogVulnAssessmentRelationship{}, + &SsvcVulnAssessmentRelationship{}, + &VexVulnAssessmentRelationship{}, + &Vulnerability{}, + &SoftwareArtifact{}, + &Bom{}, + &CustomLicense{}, + &VexAffectedVulnAssessmentRelationship{}, + &VexFixedVulnAssessmentRelationship{}, + &VexNotAffectedVulnAssessmentRelationship{}, + &VexUnderInvestigationVulnAssessmentRelationship{}, + &File{}, + &Package{}, + &Sbom{}, + &Snippet{}, + &AIPackage{}, + &DatasetPackage{}, + ). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &EnergyUnitType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType/kilowattHour": "kilowattHour", + "https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType/megajoule": "megajoule", + "https://spdx.org/rdf/3.0.0/terms/AI/EnergyUnitType/other": "other", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &ProfileIdentifierType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/ai": "ai", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/build": "build", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/core": "core", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/dataset": "dataset", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/expandedLicensing": "expandedLicensing", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/extension": "extension", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/lite": "lite", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/security": "security", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/simpleLicensing": "simpleLicensing", + "https://spdx.org/rdf/3.0.0/terms/Core/ProfileIdentifierType/software": "software", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &ExternalIdentifierType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/cpe22": "cpe22", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/cpe23": "cpe23", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/cve": "cve", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/email": "email", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/gitoid": "gitoid", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/packageUrl": "packageUrl", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/securityOther": "securityOther", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/swhid": "swhid", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/swid": "swid", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalIdentifierType/urlScheme": "urlScheme", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &ExternalRefType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/altDownloadLocation": "altDownloadLocation", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/altWebPage": "altWebPage", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/binaryArtifact": "binaryArtifact", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/bower": "bower", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/buildMeta": "buildMeta", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/buildSystem": "buildSystem", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/certificationReport": "certificationReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/chat": "chat", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/componentAnalysisReport": "componentAnalysisReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/cwe": "cwe", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/documentation": "documentation", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/dynamicAnalysisReport": "dynamicAnalysisReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/eolNotice": "eolNotice", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/exportControlAssessment": "exportControlAssessment", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/funding": "funding", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/issueTracker": "issueTracker", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/license": "license", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/mailingList": "mailingList", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/mavenCentral": "mavenCentral", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/metrics": "metrics", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/npm": "npm", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/nuget": "nuget", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/privacyAssessment": "privacyAssessment", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/productMetadata": "productMetadata", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/purchaseOrder": "purchaseOrder", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/qualityAssessmentReport": "qualityAssessmentReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/releaseHistory": "releaseHistory", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/releaseNotes": "releaseNotes", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/riskAssessment": "riskAssessment", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/runtimeAnalysisReport": "runtimeAnalysisReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/secureSoftwareAttestation": "secureSoftwareAttestation", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityAdversaryModel": "securityAdversaryModel", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityAdvisory": "securityAdvisory", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityFix": "securityFix", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityOther": "securityOther", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityPenTestReport": "securityPenTestReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityPolicy": "securityPolicy", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/securityThreatModel": "securityThreatModel", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/socialMedia": "socialMedia", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/sourceArtifact": "sourceArtifact", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/staticAnalysisReport": "staticAnalysisReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/support": "support", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/vcs": "vcs", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/vulnerabilityDisclosureReport": "vulnerabilityDisclosureReport", + "https://spdx.org/rdf/3.0.0/terms/Core/ExternalRefType/vulnerabilityExploitabilityAssessment": "vulnerabilityExploitabilityAssessment", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &HashAlgorithm{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b256": "blake2b256", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b384": "blake2b384", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b512": "blake2b512", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake3": "blake3", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/crystalsDilithium": "crystalsDilithium", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/crystalsKyber": "crystalsKyber", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/falcon": "falcon", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md2": "md2", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md4": "md4", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md5": "md5", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md6": "md6", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha1": "sha1", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha224": "sha224", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha256": "sha256", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha384": "sha384", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_224": "sha3_224", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_256": "sha3_256", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_384": "sha3_384", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_512": "sha3_512", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha512": "sha512", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &RelationshipCompleteness{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness/complete": "complete", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness/incomplete": "incomplete", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipCompleteness/noAssertion": "noAssertion", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &RelationshipType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/affects": "affects", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/amendedBy": "amendedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/ancestorOf": "ancestorOf", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/availableFrom": "availableFrom", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/configures": "configures", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/contains": "contains", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/coordinatedBy": "coordinatedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/copiedTo": "copiedTo", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/delegatedTo": "delegatedTo", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/dependsOn": "dependsOn", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/descendantOf": "descendantOf", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/describes": "describes", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/doesNotAffect": "doesNotAffect", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/expandsTo": "expandsTo", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/exploitCreatedBy": "exploitCreatedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/fixedBy": "fixedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/fixedIn": "fixedIn", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/foundBy": "foundBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/generates": "generates", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasAddedFile": "hasAddedFile", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasAssessmentFor": "hasAssessmentFor", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasAssociatedVulnerability": "hasAssociatedVulnerability", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasConcludedLicense": "hasConcludedLicense", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDataFile": "hasDataFile", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDeclaredLicense": "hasDeclaredLicense", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDeletedFile": "hasDeletedFile", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDependencyManifest": "hasDependencyManifest", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDistributionArtifact": "hasDistributionArtifact", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDocumentation": "hasDocumentation", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasDynamicLink": "hasDynamicLink", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasEvidence": "hasEvidence", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasExample": "hasExample", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasHost": "hasHost", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasInputs": "hasInputs", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasMetadata": "hasMetadata", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasOptionalComponent": "hasOptionalComponent", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasOptionalDependency": "hasOptionalDependency", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasOutputs": "hasOutputs", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasPrerequsite": "hasPrerequsite", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasProvidedDependency": "hasProvidedDependency", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasRequirement": "hasRequirement", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasSpecification": "hasSpecification", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasStaticLink": "hasStaticLink", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasTest": "hasTest", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasTestCase": "hasTestCase", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/hasVariant": "hasVariant", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/invokedBy": "invokedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/modifiedBy": "modifiedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/packagedBy": "packagedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/patchedBy": "patchedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/publishedBy": "publishedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/reportedBy": "reportedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/republishedBy": "republishedBy", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/serializedInArtifact": "serializedInArtifact", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/testedOn": "testedOn", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/trainedOn": "trainedOn", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/underInvestigationFor": "underInvestigationFor", + "https://spdx.org/rdf/3.0.0/terms/Core/RelationshipType/usesTool": "usesTool", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &ContentIdentifierType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Software/ContentIdentifierType/gitoid": "gitoid", + "https://spdx.org/rdf/3.0.0/terms/Software/ContentIdentifierType/swhid": "swhid", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &AnnotationType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/AnnotationType/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/AnnotationType/review": "review", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &SupportType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/deployed": "deployed", + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/development": "development", + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/endOfSupport": "endOfSupport", + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/limitedSupport": "limitedSupport", + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/noAssertion": "noAssertion", + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/noSupport": "noSupport", + "https://spdx.org/rdf/3.0.0/terms/Core/SupportType/support": "support", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &HashAlgorithm{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b256": "blake2b256", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b384": "blake2b384", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake2b512": "blake2b512", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/blake3": "blake3", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/crystalsDilithium": "crystalsDilithium", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/crystalsKyber": "crystalsKyber", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/falcon": "falcon", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md2": "md2", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md4": "md4", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md5": "md5", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/md6": "md6", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha1": "sha1", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha224": "sha224", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha256": "sha256", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha384": "sha384", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_224": "sha3_224", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_256": "sha3_256", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_384": "sha3_384", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha3_512": "sha3_512", + "https://spdx.org/rdf/3.0.0/terms/Core/HashAlgorithm/sha512": "sha512", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &LifecycleScopeType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/build": "build", + "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/design": "design", + "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/development": "development", + "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/runtime": "runtime", + "https://spdx.org/rdf/3.0.0/terms/Core/LifecycleScopeType/test": "test", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &CvssSeverityType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/critical": "critical", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/high": "high", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/low": "low", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/medium": "medium", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/none": "none", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &CvssSeverityType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/critical": "critical", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/high": "high", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/low": "low", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/medium": "medium", + "https://spdx.org/rdf/3.0.0/terms/Security/CvssSeverityType/none": "none", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &ExploitCatalogType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Security/ExploitCatalogType/kev": "kev", + "https://spdx.org/rdf/3.0.0/terms/Security/ExploitCatalogType/other": "other", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &SsvcDecisionType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/act": "act", + "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/attend": "attend", + "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/track": "track", + "https://spdx.org/rdf/3.0.0/terms/Security/SsvcDecisionType/trackStar": "trackStar", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &SoftwarePurpose{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/application": "application", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/archive": "archive", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/bom": "bom", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/configuration": "configuration", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/container": "container", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/data": "data", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/device": "device", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/deviceDriver": "deviceDriver", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/diskImage": "diskImage", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/documentation": "documentation", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/evidence": "evidence", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/executable": "executable", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/file": "file", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/filesystemImage": "filesystemImage", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/firmware": "firmware", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/framework": "framework", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/install": "install", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/library": "library", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/manifest": "manifest", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/model": "model", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/module": "module", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/operatingSystem": "operatingSystem", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/patch": "patch", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/platform": "platform", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/requirement": "requirement", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/source": "source", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/specification": "specification", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/test": "test", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &SoftwarePurpose{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/application": "application", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/archive": "archive", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/bom": "bom", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/configuration": "configuration", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/container": "container", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/data": "data", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/device": "device", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/deviceDriver": "deviceDriver", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/diskImage": "diskImage", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/documentation": "documentation", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/evidence": "evidence", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/executable": "executable", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/file": "file", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/filesystemImage": "filesystemImage", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/firmware": "firmware", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/framework": "framework", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/install": "install", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/library": "library", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/manifest": "manifest", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/model": "model", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/module": "module", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/operatingSystem": "operatingSystem", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/patch": "patch", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/platform": "platform", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/requirement": "requirement", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/source": "source", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/specification": "specification", + "https://spdx.org/rdf/3.0.0/terms/Software/SoftwarePurpose/test": "test", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &VexJustificationType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/componentNotPresent": "componentNotPresent", + "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/inlineMitigationsAlreadyExist": "inlineMitigationsAlreadyExist", + "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/vulnerableCodeCannotBeControlledByAdversary": "vulnerableCodeCannotBeControlledByAdversary", + "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/vulnerableCodeNotInExecutePath": "vulnerableCodeNotInExecutePath", + "https://spdx.org/rdf/3.0.0/terms/Security/VexJustificationType/vulnerableCodeNotPresent": "vulnerableCodeNotPresent", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &FileKindType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Software/FileKindType/directory": "directory", + "https://spdx.org/rdf/3.0.0/terms/Software/FileKindType/file": "file", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &SbomType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/analyzed": "analyzed", + "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/build": "build", + "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/deployed": "deployed", + "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/design": "design", + "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/runtime": "runtime", + "https://spdx.org/rdf/3.0.0/terms/Software/SbomType/source": "source", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &PresenceType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/no": "no", + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/noAssertion": "noAssertion", + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/yes": "yes", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &SafetyRiskAssessmentType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/high": "high", + "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/low": "low", + "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/medium": "medium", + "https://spdx.org/rdf/3.0.0/terms/AI/SafetyRiskAssessmentType/serious": "serious", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &PresenceType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/no": "no", + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/noAssertion": "noAssertion", + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/yes": "yes", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &ConfidentialityLevelType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/amber": "amber", + "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/clear": "clear", + "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/green": "green", + "https://spdx.org/rdf/3.0.0/terms/Dataset/ConfidentialityLevelType/red": "red", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &DatasetAvailabilityType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/clickthrough": "clickthrough", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/directDownload": "directDownload", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/query": "query", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/registration": "registration", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetAvailabilityType/scrapingScript": "scrapingScript", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &DatasetType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/audio": "audio", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/categorical": "categorical", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/graph": "graph", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/image": "image", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/noAssertion": "noAssertion", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/numeric": "numeric", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/other": "other", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/sensor": "sensor", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/structured": "structured", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/syntactic": "syntactic", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/text": "text", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/timeseries": "timeseries", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/timestamp": "timestamp", + "https://spdx.org/rdf/3.0.0/terms/Dataset/DatasetType/video": "video", + }). + IRIMap("https://spdx.org/rdf/3.0.0/spdx-context.jsonld", &PresenceType{}, map[string]string{ + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/no": "no", + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/noAssertion": "noAssertion", + "https://spdx.org/rdf/3.0.0/terms/Core/PresenceType/yes": "yes", + }) diff --git a/spdx/v3/v3_0/relationships.go b/spdx/v3/v3_0/relationships.go new file mode 100644 index 0000000..e19fa22 --- /dev/null +++ b/spdx/v3/v3_0/relationships.go @@ -0,0 +1,15 @@ +package v3_0 + +type Relationships struct { + relationships []IRelationship +} + +func (r Relationships) From(element IElement) Relationships { + var out []IRelationship + for _, r := range r.relationships { + if r.GetFrom() == element { + out = append(out, r) + } + } + return Relationships{out} +} diff --git a/spdx/v3/v3_0/spdx.go b/spdx/v3/v3_0/spdx.go new file mode 100644 index 0000000..6744952 --- /dev/null +++ b/spdx/v3/v3_0/spdx.go @@ -0,0 +1,206 @@ +package v3_0 + +import ( + "encoding/json" + "fmt" + "io" + "math/rand" + "reflect" + "time" +) + +/* +SPDX 3 models and serialization code is generated from prototype golang support for shacl2code, +https://github.com/kzantow-anchore/shacl2code/tree/golang-bindings (with contributions from Nisha and Keith) + +To regenerate, use something like this command: +.venv/bin/python -m shacl2code generate -i https://spdx.org/rdf/3.0.0/spdx-model.ttl -i https://spdx.org/rdf/3.0.0/spdx-json-serialize-annotations.ttl -x https://spdx.org/rdf/3.0.0/spdx-context.jsonld golang --package v3_0 --license MIT --output $HOME/projects/tools-golang/spdx/v3/v3_0/model.go --remap-props element=elements,extension=extensions,externalIdentifier=externalIdentifiers,externalRef=externalRefs,rootElement=rootElements +*/ + +type Document struct { + creationInfo *CreationInfo + document *SpdxDocument + graph []any + ldc ldContext +} + +func NewDocument(creator IAgent) *Document { + ci := &CreationInfo{ + Created: time.Now().Format(time.RFC3339), + CreatedBy: []IAgent{ + creator, + }, + } + creator.SetCreationInfo(ci) + return &Document{ + creationInfo: ci, + document: &SpdxDocument{ + CreationInfo: ci, + }, + graph: []any{ci, creator}, + ldc: ldGlobal, + } +} + +func (d *Document) CreationInfo() ICreationInfo { + return d.creationInfo +} + +func (d *Document) AddElement(e ...IElement) { + d.document.RootElements = append(d.document.RootElements, e...) + d.document.Elements = append(d.document.Elements, e...) +} + +func (d *Document) GetElements() []IElement { + return d.document.RootElements +} + +func (d *Document) Document() *SpdxDocument { + return d.document +} + +func (d *Document) Packages() []IPackage { + return get[IPackage](d) +} + +func (d *Document) Relationships() Relationships { + return Relationships{get[IRelationship](d)} +} + +func (d *Document) Files() []IFile { + return get[IFile](d) +} + +func (d *Document) ToJSON(writer io.Writer) error { + if d.document == nil { + return fmt.Errorf("no document object created") + } + // all IElement need to have creationInfo set... + if d.creationInfo != nil { + d.setCreationInfo(d.creationInfo, d.document) + } + // all IElement need to have spdxID... + if makeIdGenerator != nil { + idGen := makeIdGenerator(d.document) + if d.document.GetSpdxId() == "" { + d.document.SetSpdxId(idGen(d.document)) + } + d.ensureSpdxIDs(d.document, idGen) + } + + maps, err := d.ldc.toMaps(d.document) + if err != nil { + return err + } + enc := json.NewEncoder(writer) + enc.SetEscapeHTML(false) + enc.SetIndent("", " ") + return enc.Encode(maps) +} + +func (d *Document) setCreationInfo(creationInfo ICreationInfo, doc ISpdxDocument) { + iCreationInfoType := reflect.TypeOf((*ICreationInfo)(nil)).Elem() + ci := reflect.ValueOf(creationInfo) + _ = visitObjectGraph(map[reflect.Value]struct{}{}, reflect.ValueOf(doc), func(v reflect.Value) error { + t := v.Type() + if t.Kind() == reflect.Interface && v.IsNil() && t.Implements(iCreationInfoType) { + v.Set(ci) + } + return nil + }) +} + +func (d *Document) ensureSpdxIDs(doc ISpdxDocument, idGen idGenerator) { + iElementType := reflect.TypeOf((*IElement)(nil)).Elem() + _ = visitObjectGraph(map[reflect.Value]struct{}{}, reflect.ValueOf(doc), func(v reflect.Value) error { + if v.Type().Implements(iElementType) { + el, ok := v.Interface().(IElement) + if ok && el.GetSpdxId() == "" { + el.SetSpdxId(idGen(el)) + } + } + return nil + }) +} + +type idGenerator func(e IElement) string + +var makeIdGenerator = func(doc ISpdxDocument) idGenerator { + nextID := map[reflect.Type]uint{} + return func(e IElement) string { + if _, ok := e.(ISpdxDocument); ok { + return fmt.Sprintf("%v", rand.Uint64()) + } + t := baseType(reflect.TypeOf(e)) + // should these be blank nodes? + id := nextID[t] + 1 + nextID[t] = id + return fmt.Sprintf("_:%v-%v-%v", doc.GetSpdxId(), t.Name(), id) + } +} + +func visitObjectGraph(visited map[reflect.Value]struct{}, v reflect.Value, visitor func(reflect.Value) error) error { + if _, ok := visited[v]; ok { + return nil + } + visited[v] = struct{}{} + if !v.IsValid() { + return nil + } + err := visitor(v) + if err != nil { + return err + } + switch v.Kind() { + case reflect.Interface: + if !v.IsNil() { + return visitObjectGraph(visited, v.Elem(), visitor) + } + case reflect.Pointer: + if v.IsNil() { + return nil + } + return visitObjectGraph(visited, v.Elem(), visitor) + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + err = visitObjectGraph(visited, v.Field(i), visitor) + if err != nil { + return err + } + } + case reflect.Slice: + for i := 0; i < v.Len(); i++ { + err = visitObjectGraph(visited, v.Index(i), visitor) + if err != nil { + return err + } + } + default: + } + return nil +} + +func (d *Document) FromJSON(reader io.Reader) error { + graph, err := d.ldc.FromJSON(reader) + if err != nil { + return err + } + d.graph = append(d.graph, graph) + for _, e := range graph { + if doc, ok := e.(*SpdxDocument); ok { + d.document = doc + return nil + } + } + return fmt.Errorf("no document found") +} + +func get[T any](ctx *Document) []T { + var out []T + for _, i := range ctx.graph { + if i, ok := i.(T); ok { + out = append(out, i) + } + } + return out +} diff --git a/spdx/v3/v3_0/spdx_test.go b/spdx/v3/v3_0/spdx_test.go new file mode 100644 index 0000000..04db91d --- /dev/null +++ b/spdx/v3/v3_0/spdx_test.go @@ -0,0 +1,211 @@ +package v3_0_test + +import ( + "bytes" + "fmt" + "strings" + "testing" + + "github.com/pmezard/go-difflib/difflib" + + spdx "github.com/spdx/tools-golang/spdx/v3/v3_0" +) + +func Test_exportImportExport(t *testing.T) { + doc := spdx.NewDocument(&spdx.SoftwareAgent{ + Name: "tools-golang", + Summary: "a summary", + }) + doc.Document().SetProfileConformance(spdx.ProfileIdentifierType_Software) + + doc.CreationInfo().SetCreatedUsing( + &spdx.Tool{ + ExternalIdentifiers: []spdx.IExternalIdentifier{ + &spdx.ExternalIdentifier{ + ExternalIdentifierType: spdx.ExternalIdentifierType_Cpe23, + Identifier: "cpe:2.3:a:myvendor:my-product:*:*:*:*:*:*:*:*", + }, + }, + ExternalRefs: nil, + Name: "not-tools-golang", + }, + ) + + doc.Document().SetName("My Document") + + // add a package + + pkg1 := &spdx.Package{ + Name: "some-package-1", + PackageVersion: "1.2.3", + } + pkg2 := &spdx.Package{ + Name: "some-package-2", + PackageVersion: "2.4.5", + } + doc.AddElement(pkg1, pkg2) + + file1 := &spdx.File{ + Name: "/bin/bash", + } + doc.AddElement(file1) + + // add relationships + + doc.AddElement( + &spdx.Relationship{ + From: file1, + RelationshipType: spdx.RelationshipType_Contains, + To: []spdx.IElement{ + pkg1, + pkg2, + }, + }, + ) + + doc.AddElement( + &spdx.Relationship{ + From: pkg1, + RelationshipType: spdx.RelationshipType_DependsOn, + To: []spdx.IElement{ + pkg2, + }, + }, + ) + + // serialize + + buf := bytes.Buffer{} + err := doc.ToJSON(&buf) + if err != nil { + t.Error(err) + } + + json1 := buf.String() + fmt.Printf("--------- initial JSON: ----------\n%s\n\n", json1) + + // deserialize to a new document + + doc = spdx.NewDocument(&spdx.SoftwareAgent{}) + err = doc.FromJSON(strings.NewReader(json1)) + if err != nil { + t.Error(err) + } + + // re-serialize + + buf.Reset() + err = doc.ToJSON(&buf) + if err != nil { + t.Error(err) + } + json2 := buf.String() + fmt.Printf("--------- reserialized JSON: ----------\n%s\n", json2) + + // compare original to parsed and re-encoded + + diff := difflib.UnifiedDiff{ + A: difflib.SplitLines(json1), + B: difflib.SplitLines(json2), + FromFile: "Original", + ToFile: "Current", + Context: 3, + } + text, _ := difflib.GetUnifiedDiffString(diff) + if text != "" { + t.Errorf(text) + } + + // some basic verification: + + var pkgs []spdx.IPackage + for _, e := range doc.GetElements() { + if rel, ok := e.(spdx.IRelationship); ok && rel.GetRelationshipType() == spdx.RelationshipType_Contains { + if from, ok := rel.GetFrom().(spdx.IFile); ok && from.GetName() == "/bin/bash" { + for _, el := range rel.GetTo() { + if pkg, ok := el.(spdx.IPackage); ok { + pkgs = append(pkgs, pkg) + } + } + + } + } + } + if len(pkgs) != 2 { + t.Error("wrong packages returned") + } +} + +func Test_aiProfile(t *testing.T) { + doc := spdx.NewDocument(&spdx.SoftwareAgent{ + Name: "tools-golang", + Summary: "a summary", + }) + doc.Document().SetProfileConformance(spdx.ProfileIdentifierType_Ai) + + aiPkg := &spdx.AIPackage{ + Name: "some ai package", + EnergyConsumption: &spdx.EnergyConsumption{ + FinetuningEnergyConsumption: []spdx.IEnergyConsumptionDescription{ + &spdx.EnergyConsumptionDescription{ + EnergyQuantity: 1.2, + EnergyUnit: spdx.EnergyUnitType_KilowattHour, + }, + }, + TrainingEnergyConsumption: []spdx.IEnergyConsumptionDescription{ + &spdx.EnergyConsumptionDescription{ + EnergyQuantity: 5032402, + EnergyUnit: spdx.EnergyUnitType_KilowattHour, + }, + }, + }, + TypeOfModel: []string{ + "Llama 3 8B", + }, + } + + doc.AddElement(aiPkg) + + // serialize + + buf := bytes.Buffer{} + err := doc.ToJSON(&buf) + if err != nil { + t.Error(err) + } + + json1 := buf.String() + fmt.Printf("--------- initial JSON: ----------\n%s\n\n", json1) + + // deserialize to a new document + + doc = spdx.NewDocument(&spdx.SoftwareAgent{}) + err = doc.FromJSON(strings.NewReader(json1)) + if err != nil { + t.Error(err) + } + + // re-serialize + + buf.Reset() + err = doc.ToJSON(&buf) + if err != nil { + t.Error(err) + } + json2 := buf.String() + fmt.Printf("--------- reserialized JSON: ----------\n%s\n", json2) + + // compare original to parsed and re-encoded + + diff := difflib.UnifiedDiff{ + A: difflib.SplitLines(json1), + B: difflib.SplitLines(json2), + FromFile: "Original", + ToFile: "Current", + Context: 3, + } + text, _ := difflib.GetUnifiedDiffString(diff) + if text != "" { + t.Errorf(text) + } +}