package schema

import "k8s.io/kubernetes/Godeps/_workspace/src/github.com/appc/spec/schema"

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:

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

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

Variables

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

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.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

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 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.ACName `json:"name,omitempty"`
	ID     types.Hash    `json:"id"`
	Labels types.Labels  `json:"labels,omitempty"`
}

RuntimeImage describes an image referenced in a RuntimeApp

Source Files

doc.go image.go kind.go pod.go version.go

Directories

PathSynopsis
Godeps/_workspace/src/github.com/appc/spec/schema/typesPackage types contains structs representing the various types in the app container specification.
Version
v0.16.2
Published
May 4, 2015
Platform
js/wasm
Imports
4 packages
Last checked
13 seconds ago

Tools for package owners.