schema

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2015 License: Apache-2.0 Imports: 3 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`
  • `ContainerRuntimeManifest`

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 ContainerRuntimeManifestKind = types.ACKind("ContainerRuntimeManifest")

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.

type ContainerRuntimeManifest

type ContainerRuntimeManifest struct {
	ACVersion   types.SemVer      `json:"acVersion"`
	ACKind      types.ACKind      `json:"acKind"`
	UUID        types.UUID        `json:"uuid"`
	Apps        AppList           `json:"apps"`
	Volumes     []types.Volume    `json:"volumes"`
	Isolators   []types.Isolator  `json:"isolators"`
	Annotations types.Annotations `json:"annotations"`
}

func BlankContainerRuntimeManifest added in v0.4.0

func BlankContainerRuntimeManifest() *ContainerRuntimeManifest

func (ContainerRuntimeManifest) MarshalJSON

func (cm ContainerRuntimeManifest) MarshalJSON() ([]byte, error)

func (*ContainerRuntimeManifest) UnmarshalJSON

func (cm *ContainerRuntimeManifest) UnmarshalJSON(data []byte) error

type ImageManifest

type ImageManifest struct {
	ACKind        types.ACKind       `json:"acKind"`
	ACVersion     types.SemVer       `json:"acVersion"`
	Name          types.ACName       `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

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"`
	MountPoint types.ACName `json:"mountPoint"`
}

Mount describes the mapping between a volume and an apps MountPoint that will be fulfilled at runtime.

type RuntimeApp

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

RuntimeApp describes an application referenced in a ContainerRuntimeManifest

type RuntimeImage added in v0.4.0

type RuntimeImage struct {
	Name   types.ACName `json:"name"`
	ID     types.Hash   `json:"id"`
	Labels types.Labels `json:"labels"`
}

RuntimeImage describes an image referenced in a RuntimeApp

Directories

Path Synopsis
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