types

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2014 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoZeroSemVer = ACVersionError("SemVer cannot be zero")
	ErrBadSemVer    = ACVersionError("SemVer is bad")
)
View Source
var (
	ErrNoACKind = ACKindError("ACKind must be set")
)
View Source
var (
	ErrNoEmptyUUID = errors.New("UUID cannot be empty")
)

Functions

This section is empty.

Types

type ACKind

type ACKind string

ACKind wraps a string to define a field which must be set with one of several ACKind values. If it is unset, or has an invalid value, the field will refuse to marshal/unmarshal.

func (ACKind) MarshalJSON

func (a ACKind) MarshalJSON() ([]byte, error)

func (ACKind) String

func (a ACKind) String() string

func (*ACKind) UnmarshalJSON

func (a *ACKind) UnmarshalJSON(data []byte) error

type ACKindError

type ACKindError string

An ACKindError is returned when the wrong ACKind is set in a manifest

func (ACKindError) Error

func (e ACKindError) Error() string

type ACName

type ACName string

ACName (an App-Container Name) is a format used by keys in different formats of the App Container Standard. An ACName is restricted to characters accepted by the DNS RFC[1] and "/". ACNames are case-insensitive for comparison purposes, but case-preserving.

[1] http://tools.ietf.org/html/rfc1123#page-13

func NewACName

func NewACName(s string) (*ACName, error)

NewACName generates a new ACName from a string. If the given string is not a valid ACName, nil and an error are returned.

func (ACName) Equals

func (l ACName) Equals(o ACName) bool

Equals checks whether a given ACName is equal to this one.

func (*ACName) MarshalJSON

func (l *ACName) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface

func (ACName) String

func (l ACName) String() string

func (*ACName) UnmarshalJSON

func (l *ACName) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface

type ACNameError

type ACNameError string

An ACNameError is returned when a bad value is used for an ACName

func (ACNameError) Error

func (e ACNameError) Error() string

type ACVersionError

type ACVersionError string

An ACVersionError is returned when a bad ACVersion is set in a manifest

func (ACVersionError) Error

func (e ACVersionError) Error() string

type AMStartedOnError

type AMStartedOnError string

An AMStartedOnError is returned when the wrong StartedOn is set in an AppManifest

func (AMStartedOnError) Error

func (e AMStartedOnError) Error() string

type Annotations

type Annotations map[ACName]string

TODO(jonboulle): this is awkward since it's inconsistent with the way we do things elsewhere (i.e. using strict types instead of string types), but it's tricky because Annotations needs to be able to catch arbitrary key-values. Clean this up somehow?

func (Annotations) MarshalJSON

func (a Annotations) MarshalJSON() ([]byte, error)

func (*Annotations) UnmarshalJSON

func (a *Annotations) UnmarshalJSON(data []byte) error

type Date

type Date time.Time

Date wraps time.Time to marshal/unmarshal to/from JSON strings in strict accordance with RFC3339 TODO(jonboulle): golang's implementation seems slightly buggy here; according to http://tools.ietf.org/html/rfc3339#section-5.6 , applications may choose to separate the date and time with a space instead of a T character (for example, `date --rfc-3339` on GNU coreutils) - but this is considered an error by go's parser. File a bug?

func NewDate

func NewDate(s string) (*Date, error)

func (Date) MarshalJSON

func (d Date) MarshalJSON() ([]byte, error)

func (Date) String

func (d Date) String() string

func (*Date) UnmarshalJSON

func (d *Date) UnmarshalJSON(data []byte) error

type EventHandler

type EventHandler struct {
	Name string   `json:"name"`
	Exec []string `json:"exec"`
}

func (EventHandler) MarshalJSON

func (e EventHandler) MarshalJSON() ([]byte, error)

func (*EventHandler) UnmarshalJSON

func (e *EventHandler) UnmarshalJSON(data []byte) error

type Hash

type Hash struct {
	Val string
	// contains filtered or unexported fields
}

Hash encodes a hash specified in a string of the form:

"<type>:<value>"

for example

"sha256-06c733b1838136838e6d2d3e8fa5aea4c7905e92"

Valid types are currently "sha256"

func NewHash

func NewHash(s string) (*Hash, error)

func NewHashSHA256

func NewHashSHA256(b []byte) *Hash

func (Hash) MarshalJSON

func (h Hash) MarshalJSON() ([]byte, error)

func (Hash) String

func (h Hash) String() string

func (*Hash) UnmarshalJSON

func (h *Hash) UnmarshalJSON(data []byte) error

type Isolator

type Isolator struct {
	Name ACName `json:"name"`
	Val  string `json:"val"`
}

type MountPoint

type MountPoint struct {
	Name     ACName `json:"name"`
	Path     string `json:"path"`
	ReadOnly bool   `json:"readOnly"`
}

type Port

type Port struct {
	Name            ACName `json:"name"`
	Protocol        string `json:"protocol"`
	Port            uint   `json:"port"`
	SocketActivated bool   `json:"socketActivated"`
}

type SemVer

type SemVer semver.Version

SemVer implements the Unmarshaler interface to define a field that must be a semantic version string TODO(jonboulle): extend upstream instead of wrapping?

func NewSemVer

func NewSemVer(s string) (*SemVer, error)

NewSemVer generates a new SemVer from a string. If the given string does not represent a valid SemVer, nil and an error are returned.

func (SemVer) Empty

func (sv SemVer) Empty() bool

func (SemVer) MarshalJSON

func (sv SemVer) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface

func (SemVer) String

func (sv SemVer) String() string

func (*SemVer) UnmarshalJSON

func (sv *SemVer) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface

type URL

type URL url.URL

URL wraps url.URL to marshal/unmarshal to/from JSON strings and enforce that the scheme is HTTP/HTTPS only

func NewURL

func NewURL(s string) (*URL, error)

func (URL) MarshalJSON

func (u URL) MarshalJSON() ([]byte, error)

func (URL) String

func (u URL) String() string

func (*URL) UnmarshalJSON

func (u *URL) UnmarshalJSON(data []byte) error

type UUID

type UUID [16]byte

UUID encodes an RFC4122-compliant UUID, marshaled to/from a string TODO(jonboulle): vendor a package for this? TODO(jonboulle): consider more flexibility in input string formats. Right now, we only accept:

"6733C088-A507-4694-AABF-EDBE4FC5266F"
"6733C088A5074694AABFEDBE4FC5266F"

func NewUUID

func NewUUID(s string) (*UUID, error)

NewUUID generates a new UUID from the given string. If the string does not represent a valid UUID, nil and an error are returned.

func (UUID) Empty

func (u UUID) Empty() bool

func (UUID) MarshalJSON

func (u UUID) MarshalJSON() ([]byte, error)

func (UUID) String

func (u UUID) String() string

func (*UUID) UnmarshalJSON

func (u *UUID) UnmarshalJSON(data []byte) error

type Volume

type Volume struct {
	Kind     string   `json:"kind"`
	Fulfills []ACName `json:"fulfills"`

	// currently used only by "host"
	// TODO(jonboulle): factor out?
	Source   string `json:"source,omitempty"`
	ReadOnly bool   `json:"readOnly,omitempty"`
}

Volume encapsulates a volume which should be mounted into the filesystem of all apps in a ContainerRuntimeManifest

func (Volume) MarshalJSON

func (v Volume) MarshalJSON() ([]byte, error)

func (*Volume) UnmarshalJSON

func (v *Volume) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

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