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

        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

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

          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.