types

package
v0.4.8 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2023 License: Apache-2.0 Imports: 10 Imported by: 5

Documentation

Overview

Package types defines various types that have no other internal imports This allows them to be used between other packages without creating import loops

Index

Constants

View Source
const (
	// AnnotationCreated is the annotation key for the date and time on which the image was built (date-time string as defined by RFC 3339).
	AnnotationCreated = "org.opencontainers.image.created"

	// AnnotationAuthors is the annotation key for the contact details of the people or organization responsible for the image (freeform string).
	AnnotationAuthors = "org.opencontainers.image.authors"

	// AnnotationURL is the annotation key for the URL to find more information on the image.
	AnnotationURL = "org.opencontainers.image.url"

	// AnnotationDocumentation is the annotation key for the URL to get documentation on the image.
	AnnotationDocumentation = "org.opencontainers.image.documentation"

	// AnnotationSource is the annotation key for the URL to get source code for building the image.
	AnnotationSource = "org.opencontainers.image.source"

	// AnnotationVersion is the annotation key for the version of the packaged software.
	// The version MAY match a label or tag in the source code repository.
	// The version MAY be Semantic versioning-compatible.
	AnnotationVersion = "org.opencontainers.image.version"

	// AnnotationRevision is the annotation key for the source control revision identifier for the packaged software.
	AnnotationRevision = "org.opencontainers.image.revision"

	// AnnotationVendor is the annotation key for the name of the distributing entity, organization or individual.
	AnnotationVendor = "org.opencontainers.image.vendor"

	// AnnotationLicenses is the annotation key for the license(s) under which contained software is distributed as an SPDX License Expression.
	AnnotationLicenses = "org.opencontainers.image.licenses"

	// AnnotationRefName is the annotation key for the name of the reference for a target.
	// SHOULD only be considered valid when on descriptors on `index.json` within image layout.
	AnnotationRefName = "org.opencontainers.image.ref.name"

	// AnnotationTitle is the annotation key for the human-readable title of the image.
	AnnotationTitle = "org.opencontainers.image.title"

	// AnnotationDescription is the annotation key for the human-readable description of the software packaged in the image.
	AnnotationDescription = "org.opencontainers.image.description"

	// AnnotationBaseImageDigest is the annotation key for the digest of the image's base image.
	AnnotationBaseImageDigest = "org.opencontainers.image.base.digest"

	// AnnotationBaseImageName is the annotation key for the image reference of the image's base image.
	AnnotationBaseImageName = "org.opencontainers.image.base.name"

	// AnnotationArtifactCreated is the annotation key for the date and time on which the artifact was built, conforming to RFC 3339.
	AnnotationArtifactCreated = "org.opencontainers.artifact.created"

	// AnnotationArtifactDescription is the annotation key for the human readable description for the artifact.
	AnnotationArtifactDescription = "org.opencontainers.artifact.description"

	// AnnotationReferrersFiltersApplied is the annotation key for the comma separated list of filters applied by the registry in the referrers listing.
	AnnotationReferrersFiltersApplied = "org.opencontainers.referrers.filtersApplied"
)
View Source
const (
	// MediaTypeDocker1Manifest deprecated media type for docker schema1 manifests
	MediaTypeDocker1Manifest = "application/vnd.docker.distribution.manifest.v1+json"
	// MediaTypeDocker1ManifestSigned is a deprecated schema1 manifest with jws signing
	MediaTypeDocker1ManifestSigned = "application/vnd.docker.distribution.manifest.v1+prettyjws"
	// MediaTypeDocker2Manifest is the media type when pulling manifests from a v2 registry
	MediaTypeDocker2Manifest = "application/vnd.docker.distribution.manifest.v2+json"
	// MediaTypeDocker2ManifestList is the media type when pulling a manifest list from a v2 registry
	MediaTypeDocker2ManifestList = "application/vnd.docker.distribution.manifest.list.v2+json"
	// MediaTypeDocker2ImageConfig is for the configuration json object media type
	MediaTypeDocker2ImageConfig = "application/vnd.docker.container.image.v1+json"
	// MediaTypeOCI1Artifact EXPERIMENTAL OCI v1 artifact media type
	MediaTypeOCI1Artifact = "application/vnd.oci.artifact.manifest.v1+json"
	// MediaTypeOCI1Manifest OCI v1 manifest media type
	MediaTypeOCI1Manifest = "application/vnd.oci.image.manifest.v1+json"
	// MediaTypeOCI1ManifestList OCI v1 manifest list media type
	MediaTypeOCI1ManifestList = "application/vnd.oci.image.index.v1+json"
	// MediaTypeOCI1ImageConfig OCI v1 configuration json object media type
	MediaTypeOCI1ImageConfig = "application/vnd.oci.image.config.v1+json"
	// MediaTypeDocker2LayerGzip is the default compressed layer for docker schema2
	MediaTypeDocker2LayerGzip = "application/vnd.docker.image.rootfs.diff.tar.gzip"
	// MediaTypeDocker2ForeignLayer is the default compressed layer for foreign layers in docker schema2
	MediaTypeDocker2ForeignLayer = "application/vnd.docker.image.rootfs.foreign.diff.tar.gzip"
	// MediaTypeOCI1Layer is the uncompressed layer for OCIv1
	MediaTypeOCI1Layer = "application/vnd.oci.image.layer.v1.tar"
	// MediaTypeOCI1LayerGzip is the gzip compressed layer for OCI v1
	MediaTypeOCI1LayerGzip = "application/vnd.oci.image.layer.v1.tar+gzip"
	// MediaTypeOCI1LayerZstd is the zstd compressed layer for OCI v1
	MediaTypeOCI1LayerZstd = "application/vnd.oci.image.layer.v1.tar+zstd"
	// MediaTypeOCI1ForeignLayer is the foreign layer for OCI v1
	MediaTypeOCI1ForeignLayer = "application/vnd.oci.image.layer.nondistributable.v1.tar"
	// MediaTypeOCI1ForeignLayerGzip is the gzip compressed foreign layer for OCI v1
	MediaTypeOCI1ForeignLayerGzip = "application/vnd.oci.image.layer.nondistributable.v1.tar+gzip"
	// MediaTypeOCI1ForeignLayerZstd is the zstd compressed foreign layer for OCI v1
	MediaTypeOCI1ForeignLayerZstd = "application/vnd.oci.image.layer.nondistributable.v1.tar+zstd"
	// MediaTypeBuildkitCacheConfig is used by buildkit cache images
	MediaTypeBuildkitCacheConfig = "application/vnd.buildkit.cacheconfig.v0"
)

Variables

View Source
var (
	// ErrAllRequestsFailed when there are no mirrors left to try
	ErrAllRequestsFailed = errors.New("all requests failed")
	// ErrAPINotFound if an api is not available for the host
	ErrAPINotFound = errors.New("API not found")
	// ErrBackoffLimit maximum backoff attempts reached
	ErrBackoffLimit = errors.New("backoff limit reached")
	// ErrCanceled if the context was canceled
	ErrCanceled = errors.New("context was canceled")
	// ErrDigestMismatch if the expected digest wasn't received
	ErrDigestMismatch = errors.New("digest mismatch")
	// ErrEmptyChallenge indicates an issue with the received challenge in the WWW-Authenticate header
	ErrEmptyChallenge = errors.New("empty challenge header")
	// ErrFileDeleted indicates a requested file has been deleted
	ErrFileDeleted = errors.New("file deleted")
	// ErrFileNotFound indicates a requested file is not found
	ErrFileNotFound = fmt.Errorf("file not found%.0w", fs.ErrNotExist)
	// ErrHTTPStatus if the http status code was unexpected
	ErrHTTPStatus = errors.New("unexpected http status code")
	// ErrInvalidChallenge indicates an issue with the received challenge in the WWW-Authenticate header
	ErrInvalidChallenge = errors.New("invalid challenge header")
	// ErrManifestNotSet indicates the manifest is not set, it must be pulled with a ManifestGet first
	ErrManifestNotSet = errors.New("manifest not set")
	// ErrMissingAnnotation returned when a needed annotation is not found
	ErrMissingAnnotation = errors.New("annotation is missing")
	// ErrMissingDigest returned when image reference does not include a digest
	ErrMissingDigest = errors.New("digest missing from image reference")
	// ErrMissingLocation returned when the location header is missing
	ErrMissingLocation = errors.New("location header missing")
	// ErrMissingName returned when name missing for host
	ErrMissingName = errors.New("name missing")
	// ErrMissingTag returned when image reference does not include a tag
	ErrMissingTag = errors.New("tag missing from image reference")
	// ErrMissingTagOrDigest returned when image reference does not include a tag or digest
	ErrMissingTagOrDigest = errors.New("tag or Digest missing from image reference")
	// ErrMismatch returned when a comparison detects a difference
	ErrMismatch = errors.New("content does not match")
	// ErrMountReturnedLocation when a blob mount fails but a location header is received
	ErrMountReturnedLocation = errors.New("blob mount returned a location to upload")
	// ErrNoNewChallenge indicates a challenge update did not result in any change
	ErrNoNewChallenge = errors.New("no new challenge")
	// ErrNotFound isn't there, search for your value elsewhere
	ErrNotFound = errors.New("not found")
	// ErrNotImplemented returned when method has not been implemented yet
	ErrNotImplemented = errors.New("not implemented")
	// ErrParsingFailed when a string cannot be parsed
	ErrParsingFailed = errors.New("parsing failed")
	// ErrRetryNeeded indicates a request needs to be retried
	ErrRetryNeeded = errors.New("retry needed")
	// ErrUnavailable when a requested value is not available
	ErrUnavailable = errors.New("unavailable")
	// ErrUnsupported indicates the request was unsupported
	ErrUnsupported = errors.New("unsupported")
	// ErrUnsupportedAPI happens when an API is not supported on a registry
	ErrUnsupportedAPI = errors.New("unsupported API")
	// ErrUnsupportedConfigVersion happens when config file version is greater than this command supports
	ErrUnsupportedConfigVersion = errors.New("unsupported config version")
	// ErrUnsupportedMediaType returned when media type is unknown or unsupported
	ErrUnsupportedMediaType = errors.New("unsupported media type")
)
View Source
var (
	// ErrHTTPRateLimit when requests exceed server rate limit
	ErrHTTPRateLimit = fmt.Errorf("rate limit exceeded%.0w", ErrHTTPStatus)
	// ErrHTTPUnauthorized when authentication fails
	ErrHTTPUnauthorized = fmt.Errorf("unauthorized%.0w", ErrHTTPStatus)
)

custom HTTP errors extend the ErrHTTPStatus error

View Source
var ScratchData = []byte("{}")
View Source
var ScratchDigest = digest.FromBytes(ScratchData)

Functions

This section is empty.

Types

type Descriptor

type Descriptor struct {
	// MediaType describe the type of the content.
	MediaType string `json:"mediaType,omitempty"`

	// Size in bytes of content.
	Size int64 `json:"size,omitempty"`

	// Digest uniquely identifies the content.
	Digest digest.Digest `json:"digest,omitempty"`

	// URLs contains the source URLs of this content.
	URLs []string `json:"urls,omitempty"`

	// Annotations contains arbitrary metadata relating to the targeted content.
	Annotations map[string]string `json:"annotations,omitempty"`

	// Data is an embedding of the targeted content. This is encoded as a base64
	// string when marshalled to JSON (automatically, by encoding/json). If
	// present, Data can be used directly to avoid fetching the targeted content.
	Data []byte `json:"data,omitempty"`

	// Platform describes the platform which the image in the manifest runs on.
	// This should only be used when referring to a manifest.
	Platform *platform.Platform `json:"platform,omitempty"`

	// ArtifactType is the media type of the artifact this descriptor refers to.
	ArtifactType string `json:"artifactType,omitempty"`
}

Descriptor is used in manifests to refer to content by media type, size, and digest.

func (Descriptor) Equal added in v0.4.4

func (d Descriptor) Equal(d2 Descriptor) bool

Equal indicates the two descriptors are identical, effectively a DeepEqual.

func (Descriptor) GetData added in v0.4.1

func (d Descriptor) GetData() ([]byte, error)

GetData decodes the Data field from the descriptor if available

func (Descriptor) MarshalPrettyTW

func (d Descriptor) MarshalPrettyTW(tw *tabwriter.Writer, prefix string) error

func (Descriptor) Same added in v0.4.4

func (d Descriptor) Same(d2 Descriptor) bool

Same indicates two descriptors point to the same CAS object. This verifies the digest, media type, and size all match

type RateLimit

type RateLimit struct {
	Remain, Limit, Reset int
	Set                  bool
	Policies             []string
}

RateLimit is returned from some http requests

Directories

Path Synopsis
Package blob is the underlying type for pushing and pulling blobs
Package blob is the underlying type for pushing and pulling blobs
Package docker defines the common types for all docker schemas
Package docker defines the common types for all docker schemas
schema1
Package schema1 defines the manifest and json marshal/unmarshal for docker schema1
Package schema1 defines the manifest and json marshal/unmarshal for docker schema1
schema2
Package schema2 contains structs for Docker schema v2 manifests.
Package schema2 contains structs for Docker schema v2 manifests.
Package manifest abstracts the various types of supported manifests.
Package manifest abstracts the various types of supported manifests.
oci
Package oci defiles OCI image-spec types
Package oci defiles OCI image-spec types
v1
Package v1 defiles version 1 of OCI image-spec types
Package v1 defiles version 1 of OCI image-spec types
Package platform handles the parsing and comparing of the image platform (e.g.
Package platform handles the parsing and comparing of the image platform (e.g.
Package ref is used to define references References default to remote registry references (registry:port/repo:tag) Schemes can be included in front of the reference for different reference types
Package ref is used to define references References default to remote registry references (registry:port/repo:tag) Schemes can be included in front of the reference for different reference types
Package referrer is used for responses to the referrers to a manifest
Package referrer is used for responses to the referrers to a manifest
Package repo handles a list of repositories from a registry
Package repo handles a list of repositories from a registry
Package tag is used for wrapping tag lists
Package tag is used for wrapping tag lists
Package warning is used to handle HTTP warning headers
Package warning is used to handle HTTP warning headers

Jump to

Keyboard shortcuts

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