schema

package
v1.2.3-beta.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2016 License: Apache-2.0, 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

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

func (*AppList) UnmarshalJSON

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

func BlankImageManifest() *ImageManifest

func (*ImageManifest) GetAnnotation

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

func (*ImageManifest) GetLabel

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

type Mount struct {
	Volume types.ACName `json:"volume"`
	Path   string       `json:"path"`
}

Mount describes the mapping between a volume and the path it is mounted inside of an app's filesystem.

type PodManifest

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"`
}

func BlankPodManifest

func BlankPodManifest() *PodManifest

func (PodManifest) MarshalJSON

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

func (*PodManifest) UnmarshalJSON

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"`
	Mounts      []Mount           `json:"mounts,omitempty"`
	Annotations types.Annotations `json:"annotations,omitempty"`
}

RuntimeApp describes an application referenced in a PodManifest

type RuntimeImage

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