v1

package
v0.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2024 License: Apache-2.0 Imports: 18 Imported by: 4

Documentation

Index

Constants

View Source
const (
	KIND_LABEL                 = "label"
	KIND_VALUE_MERGE_ALGORITHM = "label merge algorithm"
)
View Source
const (
	// ExcludeFromSignature used in digest field for normalisationAlgorithm (in combination with NoDigest for hashAlgorithm and value)
	// to indicate the resource content should not be part of the signature.
	ExcludeFromSignature = "EXCLUDE-FROM-SIGNATURE"

	// NoDigest used in digest field for hashAlgorithm and value (in combination with ExcludeFromSignature for normalisationAlgorithm)
	// to indicate the resource content should not be part of the signature.
	NoDigest = "NO-DIGEST"
)
View Source
const (
	// SystemIdentityName is the name attribute of an element in
	// a component version. It is always present.
	SystemIdentityName = "name"
	// SystemIdentityVersion is the version attribute optionally
	// added to the identity of an element in a component version.
	// It is required, if the name and the other explicitly defined
	// extra identity attributes are not unique for a dedicated
	// kind of element in the context of a component version.
	SystemIdentityVersion = "version"
)

These constants describe identity attributes predefined by the model used to identify elements (resources, sources and references) in a component version.

View Source
const (
	GROUP = "ocm.software"
	KIND  = "ComponentVersion"
)
View Source
const IdentityKeyValidationErrMsg string = "" /* 147-byte string literal not displayed */

Variables

This section is empty.

Functions

func CheckLabelVersion

func CheckLabelVersion(v string) bool

func IsASCII

func IsASCII(s string) bool

IsAscii checks whether a string only contains ascii characters.

func IsIdentity

func IsIdentity(s string) bool

func ValidateIdentity

func ValidateIdentity(fldPath *field.Path, id Identity) field.ErrorList

ValidateIdentity validates the identity of object.

func ValidateLabels

func ValidateLabels(fldPath *field.Path, labels Labels) field.ErrorList

ValidateLabels validates a list of labels.

func ValidateRelation

func ValidateRelation(fldPath *field.Path, relation ResourceRelation) *field.Error

Types

type ArtefactDigest

type ArtefactDigest struct {
	Name          string     `json:"name"`
	Version       string     `json:"version"`
	ExtraIdentity Identity   `json:"extraIdentity,omitempty"`
	Digest        DigestSpec `json:"digest"`
}

ArtefactDigest defines artefact digest information. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*ArtefactDigest) Copy

func (d *ArtefactDigest) Copy() *ArtefactDigest

func (*ArtefactDigest) DeepCopy

func (in *ArtefactDigest) DeepCopy() *ArtefactDigest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArtefactDigest.

func (*ArtefactDigest) DeepCopyInto

func (in *ArtefactDigest) DeepCopyInto(out *ArtefactDigest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArtefactDigest) String

func (d *ArtefactDigest) String() string

type ArtefactDigests

type ArtefactDigests []ArtefactDigest

ArtefactDigests defines a list of artefact digest information. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (ArtefactDigests) DeepCopy

func (in ArtefactDigests) DeepCopy() ArtefactDigests

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArtefactDigests.

func (ArtefactDigests) DeepCopyInto

func (in ArtefactDigests) DeepCopyInto(out *ArtefactDigests)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ArtefactDigests) Lookup

func (d ArtefactDigests) Lookup(name, version string, extra Identity) *ArtefactDigest

func (ArtefactDigests) Match

type DigestSpec

type DigestSpec struct {
	HashAlgorithm          string `json:"hashAlgorithm"`
	NormalisationAlgorithm string `json:"normalisationAlgorithm"`
	Value                  string `json:"value"`
}

DigestSpec defines a digest. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func NewExcludeFromSignatureDigest

func NewExcludeFromSignatureDigest() *DigestSpec

NewExcludeFromSignatureDigest returns the special digest notation to indicate the resource content should not be part of the signature.

func (*DigestSpec) Copy

func (d *DigestSpec) Copy() *DigestSpec

Copy provides a copy of the digest spec.

func (*DigestSpec) DeepCopy

func (in *DigestSpec) DeepCopy() *DigestSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DigestSpec.

func (*DigestSpec) DeepCopyInto

func (in *DigestSpec) DeepCopyInto(out *DigestSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DigestSpec) Equal

func (d *DigestSpec) Equal(o *DigestSpec) bool

func (*DigestSpec) Equivalent

func (d *DigestSpec) Equivalent(o *DigestSpec) equivalent.EqualState

func (*DigestSpec) IsComplete

func (d *DigestSpec) IsComplete() bool

func (*DigestSpec) IsExcluded

func (d *DigestSpec) IsExcluded() bool

func (*DigestSpec) IsNone

func (d *DigestSpec) IsNone() bool

func (*DigestSpec) String

func (d *DigestSpec) String() string

type Identity

type Identity map[string]string

Identity describes the identity of an object. Only ascii characters are allowed +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func NewExtraIdentity

func NewExtraIdentity(extras ...string) Identity

func NewIdentity

func NewIdentity(name string, extras ...string) Identity

NewIdentity return a simple name identity.

func (Identity) Copy

func (i Identity) Copy() Identity

Copy copies identity.

func (Identity) DeepCopy

func (in Identity) DeepCopy() Identity

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Identity.

func (Identity) DeepCopyInto

func (in Identity) DeepCopyInto(out *Identity)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Identity) Digest

func (i Identity) Digest() []byte

Digest returns the object digest of an identity.

func (Identity) Equals

func (i Identity) Equals(o Identity) bool

Equals compares two identities.

func (Identity) Equivalent

func (i Identity) Equivalent(o Identity) equivalent.EqualState

func (Identity) ExtraIdentity added in v0.15.0

func (i Identity) ExtraIdentity() Identity

ExtraIdentity extracts the extra identity part of an identity.

func (Identity) Get

func (i Identity) Get(name string) string

func (Identity) Match

func (i Identity) Match(obj map[string]string) (bool, error)

Match implements the selector interface.

func (Identity) Remove

func (i Identity) Remove(name string) bool

func (*Identity) Set

func (i *Identity) Set(name, value string)

func (Identity) String

func (i Identity) String() string

type Label

type Label struct {
	// Name is the unique name of the label.
	Name string `json:"name"`
	// Value is the json/yaml data of the label
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Value json.RawMessage `json:"value"`

	// Version is the optional specification version of the attribute value
	Version string `json:"version,omitempty"`
	// Signing describes whether the label should be included into the signature
	Signing bool `json:"signing,omitempty"`

	// MergeAlgorithm optionally describes the desired merge handling used to
	// merge the label value during a transfer.
	Merge *MergeAlgorithmSpecification `json:"merge,omitempty"`
}

Label is a label that can be set on objects. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func NewLabel

func NewLabel(name string, value interface{}, opts ...LabelOption) (*Label, error)

func (*Label) DeepCopy

func (in *Label) DeepCopy() *Label

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Label.

func (*Label) DeepCopyInto

func (in *Label) DeepCopyInto(out *Label)

DeepCopyInto copies labels.

func (*Label) GetValue

func (in *Label) GetValue(dest interface{}) error

GetValue returns the label value with the given name as parsed object.

func (*Label) SetValue

func (in *Label) SetValue(value interface{}) error

SetValue sets the label value by marshalling the given object. A passed byte slice is validated to be valid json.

type LabelMergeHandlerConfig

type LabelMergeHandlerConfig interface{}

LabelMergeHandlerConfig must be label merge handler config. but cannot be checked because of cyclic package dependencies.

type LabelOption

type LabelOption interface {
	ApplyToLabel(l *Label) error
}

func WithMerging

func WithMerging(algo string, cfg LabelMergeHandlerConfig) LabelOption

func WithSigning

func WithSigning(b ...bool) LabelOption

func WithVersion

func WithVersion(v string) LabelOption

type Labels

type Labels []Label

Labels describe a list of labels +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*Labels) AsMap

func (l *Labels) AsMap() map[string]interface{}

AsMap return an unmarshalled map representation.

func (*Labels) Clear

func (l *Labels) Clear()

func (Labels) Copy

func (l Labels) Copy() Labels

Copy copies labels.

func (Labels) DeepCopy

func (in Labels) DeepCopy() Labels

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Labels.

func (Labels) DeepCopyInto

func (in Labels) DeepCopyInto(out *Labels)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Labels) Equivalent

func (l Labels) Equivalent(o Labels) equivalent.EqualState

func (Labels) Get

func (l Labels) Get(name string) ([]byte, bool)

Get returns the label value with the given name as json string.

func (Labels) GetDef

func (l Labels) GetDef(name string) *Label

GetDef returns the label definition of the given label.

func (Labels) GetIndex

func (l Labels) GetIndex(name string) int

GetIndex returns the index of the given label or -1 if not found.

func (Labels) GetValue

func (l Labels) GetValue(name string, dest interface{}) (bool, error)

GetValue returns the label value with the given name as parsed object.

func (*Labels) Remove

func (l *Labels) Remove(name string) bool

func (*Labels) Set

func (l *Labels) Set(name string, value interface{}, opts ...LabelOption) error

Set sets or modifies a label including its meta data.

func (*Labels) SetDef

func (l *Labels) SetDef(name string, value *Label)

SetDef sets a label definition.

func (*Labels) SetOptions

func (l *Labels) SetOptions(name string, opts ...LabelOption) error

Set sets or modifies the label meta data.

func (*Labels) SetValue

func (l *Labels) SetValue(name string, value interface{}) error

SetValue sets or modifies the value of a label, the label metadata is not touched.

type MergeAlgorithmSpecification

type MergeAlgorithmSpecification struct {
	// Algorithm optionally described the Merge algorithm used to
	// merge the label value during a transfer.
	Algorithm string `json:"algorithm"`
	// eConfig contains optional config for the merge algorithm.
	Config json.RawMessage `json:"config,omitempty"`
}

func NewMergeAlgorithmSpecification

func NewMergeAlgorithmSpecification(algo string, spec interface{}) (*MergeAlgorithmSpecification, error)

func (*MergeAlgorithmSpecification) Description

func (s *MergeAlgorithmSpecification) Description() string

type Metadata

type Metadata struct {
	// Version is the schema version of the component descriptor.
	Version string `json:"schemaVersion"`
}

Metadata defines the metadata of the component descriptor. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NestedComponentDigests

type NestedComponentDigests struct {
	Name      string          `json:"name"`
	Version   string          `json:"version"`
	Digest    *DigestSpec     `json:"digest,omitempty"`
	Resources ArtefactDigests `json:"resourceDigests,omitempty"`
}

NestedComponentDigests defines nested components. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*NestedComponentDigests) Copy

func (*NestedComponentDigests) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NestedComponentDigests.

func (*NestedComponentDigests) DeepCopyInto

func (in *NestedComponentDigests) DeepCopyInto(out *NestedComponentDigests)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NestedComponentDigests) Lookup

func (d *NestedComponentDigests) Lookup(name, version string, extra Identity) *ArtefactDigest

func (*NestedComponentDigests) String

func (d *NestedComponentDigests) String() string

type NestedDigests

type NestedDigests []NestedComponentDigests

NestedDigests defines a list of nested components. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (NestedDigests) Copy

func (d NestedDigests) Copy() NestedDigests

func (NestedDigests) DeepCopy

func (in NestedDigests) DeepCopy() NestedDigests

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NestedDigests.

func (NestedDigests) DeepCopyInto

func (in NestedDigests) DeepCopyInto(out *NestedDigests)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NestedDigests) Lookup

func (d NestedDigests) Lookup(name, version string) *NestedComponentDigests

func (NestedDigests) String

func (d NestedDigests) String() string

type ObjectMeta

type ObjectMeta struct {
	// Name is the name of the component.
	Name string `json:"name"`
	// Version is the version of the component.
	Version string `json:"version"`
	// Labels describe additional properties of the component version
	Labels Labels `json:"labels,omitempty"`
	// Provider described the component provider
	Provider Provider `json:"provider"`
	// CreationTime is the creation time of component version
	// +optional
	CreationTime *Timestamp `json:"creationTime,omitempty"`
}

ObjectMeta defines the metadata of the component descriptor.

func (*ObjectMeta) Copy

func (o *ObjectMeta) Copy() *ObjectMeta

GetName returns the name of the object.

func (*ObjectMeta) Equal

func (o *ObjectMeta) Equal(obj interface{}) bool

func (ObjectMeta) Equivalent

func (o ObjectMeta) Equivalent(a ObjectMeta) equivalent.EqualState

func (ObjectMeta) GetLabels

func (o ObjectMeta) GetLabels() Labels

GetLabels returns the label of the object.

func (*ObjectMeta) GetName

func (o *ObjectMeta) GetName() string

GetName returns the name of the object.

func (ObjectMeta) GetVersion

func (o ObjectMeta) GetVersion() string

GetVersion returns the version of the object.

func (*ObjectMeta) SetLabels

func (o *ObjectMeta) SetLabels(labels []Label)

SetLabels sets the labels of the object.

func (*ObjectMeta) SetName

func (o *ObjectMeta) SetName(name string)

SetName sets the name of the object.

func (*ObjectMeta) SetVersion

func (o *ObjectMeta) SetVersion(version string)

SetVersion sets the version of the object.

type Provider

type Provider struct {
	Name ProviderName `json:"name"`
	// Labels describe additional properties of provider
	Labels Labels `json:"labels,omitempty"`
}

Provider describes the provider information of a component version.

func (*Provider) Copy

func (o *Provider) Copy() *Provider

Copy copies the provider info.

func (Provider) Equivalent

func (o Provider) Equivalent(a Provider) equivalent.EqualState

func (Provider) GetLabels

func (o Provider) GetLabels() Labels

GetLabels returns the label of the provider.

func (Provider) GetName

func (o Provider) GetName() ProviderName

GetName returns the name of the provider.

func (*Provider) SetLabels

func (o *Provider) SetLabels(labels []Label)

SetLabels sets the labels of the provider.

func (*Provider) SetName

func (o *Provider) SetName(name ProviderName)

SetName sets the name of the provider.

type ProviderName

type ProviderName string

ProviderName describes the provider type of component in the origin's context. Defines whether the component is created by a third party or internally. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

type ResourceReference

type ResourceReference struct {
	Resource      Identity   `json:"resource,omitempty"`
	ReferencePath []Identity `json:"referencePath,omitempty"`
}

ResourceReference describes re resource identity relative to an (aggregation) component version.

func NewNestedResourceRef

func NewNestedResourceRef(id Identity, path []Identity) ResourceReference

func NewResourceRef

func NewResourceRef(id Identity, path ...Identity) ResourceReference

func (*ResourceReference) String

func (r *ResourceReference) String() string

type ResourceRelation

type ResourceRelation string

ResourceRelation describes the type of a resource. Defines whether the component is created by a third party or internally. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

const (
	// LocalRelation defines a internal relation
	// which describes a internally maintained resource in the origin's context.
	LocalRelation ResourceRelation = "local"
	// ExternalRelation defines a external relation
	// which describes a resource maintained by a third party vendor in the origin's context.
	ExternalRelation ResourceRelation = "external"
)

type Signature

type Signature struct {
	Name      string         `json:"name"`
	Digest    DigestSpec     `json:"digest"`
	Signature SignatureSpec  `json:"signature"`
	Timestamp *TimestampSpec `json:"timestamp,omitempty"`
}

Signature defines a digest and corresponding signature, identifiable by name. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*Signature) ConvertToSigning

func (s *Signature) ConvertToSigning() *signing.Signature

ConvertToSigning converts a cd signature to a signing signature.

func (*Signature) Copy

func (s *Signature) Copy() *Signature

Copy provides a copy of the signature data.

func (*Signature) DeepCopy

func (in *Signature) DeepCopy() *Signature

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Signature.

func (*Signature) DeepCopyInto

func (in *Signature) DeepCopyInto(out *Signature)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SignatureSpec

type SignatureSpec struct {
	Algorithm string `json:"algorithm"`
	Value     string `json:"value"`
	MediaType string `json:"mediaType"`
	Issuer    string `json:"issuer,omitempty"`
}

SignatureSpec defines a signature. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func SignatureSpecFor

func SignatureSpecFor(s *signing.Signature) *SignatureSpec

func (*SignatureSpec) ConvertToSigning

func (s *SignatureSpec) ConvertToSigning() *signing.Signature

ConvertToSigning converts a cd signature to a signing signature.

func (*SignatureSpec) DeepCopy

func (in *SignatureSpec) DeepCopy() *SignatureSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureSpec.

func (*SignatureSpec) DeepCopyInto

func (in *SignatureSpec) DeepCopyInto(out *SignatureSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Signatures

type Signatures []Signature

Signatures is a list of signatures.

func (Signatures) Copy

func (s Signatures) Copy() Signatures

func (Signatures) Equivalent

func (s Signatures) Equivalent(o Signatures) equivalent.EqualState

func (Signatures) Get

func (s Signatures) Get(i int) *Signature

func (Signatures) GetByName

func (s Signatures) GetByName(name string) *Signature

func (Signatures) GetIndex

func (s Signatures) GetIndex(name string) int

func (Signatures) Len

func (s Signatures) Len() int

func (*Signatures) Set

func (s *Signatures) Set(sig Signature)

type StringMap

type StringMap map[string]string

func (StringMap) Copy

func (l StringMap) Copy() StringMap

Copy copies map.

type Timestamp

type Timestamp struct {
	// contains filtered or unexported fields
}

Timestamp is time rounded to seconds. +k8s:deepcopy-gen=true

func NewTimestamp

func NewTimestamp() Timestamp

func NewTimestampFor

func NewTimestampFor(t time.Time) Timestamp

func NewTimestampP

func NewTimestampP() *Timestamp

func NewTimestampPFor

func NewTimestampPFor(t time.Time) *Timestamp

func (*Timestamp) Add

func (t *Timestamp) Add(d time.Duration) Timestamp

func (*Timestamp) DeepCopy

func (in *Timestamp) DeepCopy() *Timestamp

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timestamp.

func (*Timestamp) DeepCopyInto

func (in *Timestamp) DeepCopyInto(out *Timestamp)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Timestamp) Equal

func (t *Timestamp) Equal(o Timestamp) bool

func (Timestamp) MarshalJSON

func (t Timestamp) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface. The time is a quoted string in RFC 3339 format, with sub-second precision added if present.

func (Timestamp) String

func (t Timestamp) String() string

func (*Timestamp) Time

func (t *Timestamp) Time() time.Time

func (*Timestamp) UnmarshalJSON

func (t *Timestamp) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface. The time is expected to be a quoted string in RFC 3339 format.

type TimestampSpec

type TimestampSpec struct {
	// Value contains the PEM encoded TSA value.
	Value string     `json:"value"`
	Time  *Timestamp `json:"time,omitempty"`
}

TimestampSpec provides a timestamp and the appropriate pem encoded TSA value. +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*TimestampSpec) DeepCopy

func (in *TimestampSpec) DeepCopy() *TimestampSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimestampSpec.

func (*TimestampSpec) DeepCopyInto

func (in *TimestampSpec) DeepCopyInto(out *TimestampSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TypeMeta

type TypeMeta struct {
	APIVersion string `json:"apiVersion"`
	Kind       string `json:"kind"`
}

TypeMeta describes the schema of a descriptor.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL