schema

package
v0.8.12 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2020 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package schema provides definitions for the JSON schema of the different manifests in the App Container Specification. The manifests are canonically represented in their respective structs:

  • `ImageManifest`
  • `PodManifest`

Validation is performed through serialization: if a blob of JSON data will unmarshal to one of the *Manifests, it is considered a valid implementation of the standard. Similarly, if a constructed *Manifest struct marshals successfully to JSON, it must be valid.

Index

Constants

View Source
const (
	ACIExtension      = ".aci"
	ImageManifestKind = types.ACKind("ImageManifest")
)
View Source
const PodManifestKind = types.ACKind("PodManifest")

Variables

View Source
var (
	// AppContainerVersion is the SemVer representation of version
	AppContainerVersion types.SemVer
)

Functions

This section is empty.

Types

type AppList

type AppList []RuntimeApp

func (AppList) Get

func (al AppList) Get(name types.ACName) *RuntimeApp

Get retrieves an app by the specified name from the AppList; if there is no such app, nil is returned. The returned *RuntimeApp MUST be considered read-only.

func (AppList) MarshalJSON added in v0.5.0

func (al AppList) MarshalJSON() ([]byte, error)

func (*AppList) UnmarshalJSON added in v0.5.0

func (al *AppList) UnmarshalJSON(data []byte) error

type ImageManifest

type ImageManifest struct {
	ACKind        types.ACKind       `json:"acKind"`
	ACVersion     types.SemVer       `json:"acVersion"`
	Name          types.ACIdentifier `json:"name"`
	Labels        types.Labels       `json:"labels,omitempty"`
	App           *types.App         `json:"app,omitempty"`
	Annotations   types.Annotations  `json:"annotations,omitempty"`
	Dependencies  types.Dependencies `json:"dependencies,omitempty"`
	PathWhitelist []string           `json:"pathWhitelist,omitempty"`
}

func BlankImageManifest added in v0.4.0

func BlankImageManifest() *ImageManifest

func (*ImageManifest) GetAnnotation added in v0.2.0

func (im *ImageManifest) GetAnnotation(name string) (val string, ok bool)

func (*ImageManifest) GetLabel added in v0.2.0

func (im *ImageManifest) GetLabel(name string) (val string, ok bool)

func (ImageManifest) MarshalJSON

func (im ImageManifest) MarshalJSON() ([]byte, error)

func (*ImageManifest) UnmarshalJSON

func (im *ImageManifest) UnmarshalJSON(data []byte) error

type Kind

type Kind struct {
	ACVersion types.SemVer `json:"acVersion"`
	ACKind    types.ACKind `json:"acKind"`
}

func (Kind) MarshalJSON

func (k Kind) MarshalJSON() ([]byte, error)

func (*Kind) UnmarshalJSON

func (k *Kind) UnmarshalJSON(data []byte) error

type Mount added in v0.3.0

type Mount struct {
	Volume    types.ACName  `json:"volume"`
	Path      string        `json:"path"`
	AppVolume *types.Volume `json:"appVolume,omitempty"`
}

Mount describes the mapping between a volume and the path it is mounted inside of an app's filesystem. The AppVolume is optional. If missing, the pod-level Volume of the same name shall be used.

type PodManifest added in v0.5.0

type PodManifest struct {
	ACVersion       types.SemVer          `json:"acVersion"`
	ACKind          types.ACKind          `json:"acKind"`
	Apps            AppList               `json:"apps"`
	Volumes         []types.Volume        `json:"volumes"`
	Isolators       []types.Isolator      `json:"isolators"`
	Annotations     types.Annotations     `json:"annotations"`
	Ports           []types.ExposedPort   `json:"ports"`
	UserAnnotations types.UserAnnotations `json:"userAnnotations,omitempty"`
	UserLabels      types.UserLabels      `json:"userLabels,omitempty"`
}

func BlankPodManifest added in v0.5.0

func BlankPodManifest() *PodManifest

func (PodManifest) MarshalJSON added in v0.5.0

func (pm PodManifest) MarshalJSON() ([]byte, error)

func (*PodManifest) UnmarshalJSON added in v0.5.0

func (pm *PodManifest) UnmarshalJSON(data []byte) error

type RuntimeApp

type RuntimeApp struct {
	Name           types.ACName      `json:"name"`
	Image          RuntimeImage      `json:"image"`
	App            *types.App        `json:"app,omitempty"`
	ReadOnlyRootFS bool              `json:"readOnlyRootFS,omitempty"`
	Mounts         []Mount           `json:"mounts,omitempty"`
	Annotations    types.Annotations `json:"annotations,omitempty"`
}

RuntimeApp describes an application referenced in a PodManifest

type RuntimeImage added in v0.4.0

type RuntimeImage struct {
	Name   *types.ACIdentifier `json:"name,omitempty"`
	ID     types.Hash          `json:"id"`
	Labels types.Labels        `json:"labels,omitempty"`
}

RuntimeImage describes an image referenced in a RuntimeApp

Directories

Path Synopsis
Package lastditch provides fallback redefinitions of parts of schemas provided by schema package.
Package lastditch provides fallback redefinitions of parts of schemas provided by schema package.
Package types contains structs representing the various types in the app container specification.
Package types contains structs representing the various types in the app container specification.

Jump to

Keyboard shortcuts

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