description: Index | Files

package description

import ""

The description package defines the structure and representation and serialisation of models to facilitate the import and export of models from different controllers.


Package Files

action.go address.go annotations.go application.go applicationoffer.go blockdevice.go cloudcontainer.go cloudcredential.go cloudimagemetadata.go cloudinstance.go cloudservice.go common.go constraints.go doc.go endpoint.go externalcontroller.go filesystem.go firewallrule.go interfaces.go ipaddress.go linklayerdevice.go machine.go meter-status.go model.go payload.go ports.go relation.go relationnetworks.go remoteapplication.go remoteendpoint.go remoteentity.go remotespace.go resource.go serialization.go sla.go space.go sshhostkey.go status.go storage.go storageconstraint.go storagepool.go subnet.go unit.go unitresources.go user.go volume.go


const (
    // IAAS is the type for IAAS models.
    IAAS = "iaas"

    // CAAS is the type for CAAS models.
    CAAS = "caas"

func Serialize Uses

func Serialize(model Model) ([]byte, error)

Serialize mirrors the Deserialize method, and makes sure that the same serialization method is used.

type Action Uses

type Action interface {
    Id() string
    Receiver() string
    Name() string
    Parameters() map[string]interface{}
    Enqueued() time.Time
    Started() time.Time
    Completed() time.Time
    Results() map[string]interface{}
    Status() string
    Message() string
    Logs() []ActionMessage

Action represents an action.

type ActionArgs Uses

type ActionArgs struct {
    Id         string
    Receiver   string
    Name       string
    Parameters map[string]interface{}
    Enqueued   time.Time
    Started    time.Time
    Completed  time.Time
    Status     string
    Message    string
    Results    map[string]interface{}
    Messages   []ActionMessage

ActionArgs is an argument struct used to create a new internal action type that supports the Action interface.

type ActionMessage Uses

type ActionMessage interface {
    Timestamp() time.Time
    Message() string

ActionMessage represents an action log message.

type Address Uses

type Address interface {
    Value() string
    Type() string
    Scope() string
    Origin() string
    SpaceID() string

Address represents an IP Address of some form.

type AddressArgs Uses

type AddressArgs struct {
    Value   string
    Type    string
    Scope   string
    Origin  string
    SpaceID string

AddressArgs is an argument struct used to create a new internal address type that supports the Address interface.

type AgentTools Uses

type AgentTools interface {
    Version() version.Binary
    URL() string
    SHA256() string
    Size() int64

AgentTools represent the version and related binary file that the machine and unit agents are using.

type AgentToolsArgs Uses

type AgentToolsArgs struct {
    Version version.Binary
    URL     string
    SHA256  string
    Size    int64

AgentToolsArgs is an argument struct used to add information about the tools the agent is using to a Machine.

type Annotations_ Uses

type Annotations_ map[string]string

Instead of copy / pasting the Annotations, SetAnnotations, and the import three lines into every entity that has annotations, the Annotations_ helper type is provided for use in composition. This type is composed without a name so the methods get promoted so they satisfy the HasAnnotations interface.

NOTE(mjs) - The type is exported due to a limitation with go-yaml under 1.6. Once that's fixed it should be possible to make it private again.

NOTE(mjs) - The trailing underscore on the type name is to avoid collisions between the type name and the Annotations method. The underscore can go once the type becomes private again (revert to "annotations").

func (*Annotations_) Annotations Uses

func (a *Annotations_) Annotations() map[string]string

Annotations implements HasAnnotations.

func (*Annotations_) SetAnnotations Uses

func (a *Annotations_) SetAnnotations(annotations map[string]string)

SetAnnotations implements HasAnnotations.

type Application Uses

type Application interface {

    Tag() names.ApplicationTag
    Name() string
    Type() string
    Series() string
    Subordinate() bool
    CharmURL() string
    Channel() string
    CharmModifiedVersion() int
    ForceCharm() bool
    Exposed() bool
    MinUnits() int

    PasswordHash() string
    PodSpec() string
    DesiredScale() int
    Placement() string
    CloudService() CloudService

    EndpointBindings() map[string]string

    CharmConfig() map[string]interface{}
    ApplicationConfig() map[string]interface{}

    Leader() string
    LeadershipSettings() map[string]interface{}

    MetricsCredentials() []byte
    StorageConstraints() map[string]StorageConstraint

    Resources() []Resource
    AddResource(ResourceArgs) Resource

    Units() []Unit
    AddUnit(UnitArgs) Unit

    Tools() AgentTools

    Offers() []ApplicationOffer
    AddOffer(ApplicationOfferArgs) ApplicationOffer

    Validate() error

Application represents a deployed charm in a model.

type ApplicationArgs Uses

type ApplicationArgs struct {
    Tag                  names.ApplicationTag
    Type                 string
    Series               string
    Subordinate          bool
    CharmURL             string
    Channel              string
    CharmModifiedVersion int
    ForceCharm           bool
    PasswordHash         string
    PodSpec              string
    Placement            string
    DesiredScale         int
    CloudService         *CloudServiceArgs
    Exposed              bool
    MinUnits             int
    EndpointBindings     map[string]string
    ApplicationConfig    map[string]interface{}
    CharmConfig          map[string]interface{}
    Leader               string
    LeadershipSettings   map[string]interface{}
    StorageConstraints   map[string]StorageConstraintArgs
    MetricsCredentials   []byte

ApplicationArgs is an argument struct used to add an application to the Model.

type ApplicationOffer Uses

type ApplicationOffer interface {
    OfferName() string
    Endpoints() []string
    ACL() map[string]string

ApplicationOffer represents an offer for a an application's endpoints.

type ApplicationOfferArgs Uses

type ApplicationOfferArgs struct {
    OfferName string
    Endpoints []string
    ACL       map[string]string

ApplicationOfferArgs is an argument struct used to instanciate a new applicationOffer instance that implements ApplicationOffer.

type BlockDevice Uses

type BlockDevice interface {
    Name() string
    Links() []string
    Label() string
    UUID() string
    HardwareID() string
    WWN() string
    BusAddress() string
    Size() uint64
    FilesystemType() string
    InUse() bool
    MountPoint() string

BlockDevice represents a block device on a machine.

type BlockDeviceArgs Uses

type BlockDeviceArgs struct {
    Name           string
    Links          []string
    Label          string
    UUID           string
    HardwareID     string
    WWN            string
    BusAddress     string
    Size           uint64
    FilesystemType string
    InUse          bool
    MountPoint     string

BlockDeviceArgs is an argument struct used to add a block device to a Machine.

type ByName Uses

type ByName []User

Implement length-based sort with ByLen type.

func (ByName) Len Uses

func (a ByName) Len() int

func (ByName) Less Uses

func (a ByName) Less(i, j int) bool

func (ByName) Swap Uses

func (a ByName) Swap(i, j int)

type CloudContainer Uses

type CloudContainer interface {
    ProviderId() string
    Address() Address
    Ports() []string

CloudContainer represents the state of a CAAS container, eg pod.

type CloudContainerArgs Uses

type CloudContainerArgs struct {
    ProviderId string
    Address    AddressArgs
    Ports      []string

CloudContainerArgs is an argument struct used to create a new internal cloudContainer type that supports the CloudContainer interface.

type CloudCredential Uses

type CloudCredential interface {
    Owner() string
    Cloud() string
    Name() string
    AuthType() string
    Attributes() map[string]string

CloudCredential represents the current cloud credential for the model.

type CloudCredentialArgs Uses

type CloudCredentialArgs struct {
    Owner      names.UserTag
    Cloud      names.CloudTag
    Name       string
    AuthType   string
    Attributes map[string]string

CloudCredentialArgs is an argument struct used to create a new internal cloudCredential type that supports the CloudCredential interface.

type CloudImageMetadata Uses

type CloudImageMetadata interface {
    Stream() string
    Region() string
    Version() string
    Series() string
    Arch() string
    VirtType() string
    RootStorageType() string
    RootStorageSize() (uint64, bool)
    DateCreated() int64
    Source() string
    Priority() int
    ImageId() string
    ExpireAt() *time.Time

CloudImageMetadata represents an IP cloudimagemetadata.

type CloudImageMetadataArgs Uses

type CloudImageMetadataArgs struct {
    Stream          string
    Region          string
    Version         string
    Series          string
    Arch            string
    VirtType        string
    RootStorageType string
    RootStorageSize *uint64
    DateCreated     int64
    Source          string
    Priority        int
    ImageId         string
    ExpireAt        *time.Time

CloudImageMetadataArgs is an argument struct used to create a new internal cloudimagemetadata type that supports the CloudImageMetadata interface.

type CloudInstance Uses

type CloudInstance interface {

    InstanceId() string
    Architecture() string
    Memory() uint64
    RootDisk() uint64
    RootDiskSource() string
    CpuCores() uint64
    CpuPower() uint64
    Tags() []string
    AvailabilityZone() string
    CharmProfiles() []string

    Validate() error

CloudInstance holds information particular to a machine instance in a cloud.

type CloudInstanceArgs Uses

type CloudInstanceArgs struct {
    InstanceId       string
    Architecture     string
    Memory           uint64
    RootDisk         uint64
    RootDiskSource   string
    CpuCores         uint64
    CpuPower         uint64
    Tags             []string
    AvailabilityZone string
    CharmProfiles    []string

CloudInstanceArgs is an argument struct used to add information about the cloud instance to a Machine.

type CloudService Uses

type CloudService interface {
    ProviderId() string
    Addresses() []Address
    SetAddresses(addresses []AddressArgs)

CloudService represents the state of a CAAS service.

type CloudServiceArgs Uses

type CloudServiceArgs struct {
    ProviderId string
    Addresses  []AddressArgs

CloudServiceArgs is an argument struct used to create a new internal cloudService type that supports the cloudService interface.

type Constraints Uses

type Constraints interface {
    Architecture() string
    Container() string
    CpuCores() uint64
    CpuPower() uint64
    InstanceType() string
    Memory() uint64
    RootDisk() uint64
    RootDiskSource() string

    Spaces() []string
    Tags() []string
    Zones() []string

    VirtType() string

Constraints holds information about particular deployment constraints for entities.

type ConstraintsArgs Uses

type ConstraintsArgs struct {
    Architecture   string
    Container      string
    CpuCores       uint64
    CpuPower       uint64
    InstanceType   string
    Memory         uint64
    RootDisk       uint64
    RootDiskSource string

    Spaces []string
    Tags   []string
    Zones  []string

    VirtType string

ConstraintsArgs is an argument struct to construct Constraints.

type Endpoint Uses

type Endpoint interface {
    ApplicationName() string
    Name() string
    // Role, Interface, Optional, Limit, and Scope should all be available
    // through the Charm associated with the Application. There is no real need
    // for this information to be denormalised like this. However, for now,
    // since the import may well take place before the charms have been loaded
    // into the model, we'll send this information over.
    Role() string
    Interface() string
    Optional() bool
    Limit() int
    Scope() string

    // UnitCount returns the number of units the endpoint has settings for.
    UnitCount() int

    AllSettings() map[string]map[string]interface{}
    Settings(unitName string) map[string]interface{}
    SetUnitSettings(unitName string, settings map[string]interface{})
    ApplicationSettings() map[string]interface{}
    SetApplicationSettings(settings map[string]interface{})

Endpoint represents one end of a relation. A named endpoint provided by the charm that is deployed for the application.

type EndpointArgs Uses

type EndpointArgs struct {
    ApplicationName string
    Name            string
    Role            string
    Interface       string
    Optional        bool
    Limit           int
    Scope           string

EndpointArgs is an argument struct used to specify a relation.

type ExternalController Uses

type ExternalController interface {
    ID() names.ControllerTag
    Alias() string
    Addrs() []string
    CACert() string

ExternalController represents the state of a controller hosting other models.

type ExternalControllerArgs Uses

type ExternalControllerArgs struct {
    Tag    names.ControllerTag
    Alias  string
    Addrs  []string
    CACert string

ExternalControllerArgs is an argument struct used to add a external controller to a model.

type Filesystem Uses

type Filesystem interface {

    Tag() names.FilesystemTag
    Volume() names.VolumeTag
    Storage() names.StorageTag

    Provisioned() bool

    Size() uint64
    Pool() string

    FilesystemID() string

    Attachments() []FilesystemAttachment
    AddAttachment(FilesystemAttachmentArgs) FilesystemAttachment

Filesystem represents a filesystem in the model.

type FilesystemArgs Uses

type FilesystemArgs struct {
    Tag          names.FilesystemTag
    Storage      names.StorageTag
    Volume       names.VolumeTag
    Provisioned  bool
    Size         uint64
    Pool         string
    FilesystemID string

FilesystemArgs is an argument struct used to add a filesystem to the Model.

type FilesystemAttachment Uses

type FilesystemAttachment interface {
    Host() names.Tag
    Provisioned() bool
    MountPoint() string
    ReadOnly() bool

FilesystemAttachment represents a filesystem attached to a machine.

type FilesystemAttachmentArgs Uses

type FilesystemAttachmentArgs struct {
    Host        names.Tag
    Provisioned bool
    ReadOnly    bool
    MountPoint  string

FilesystemAttachmentArgs is an argument struct used to add information about the cloud instance to a Filesystem.

type FirewallRule Uses

type FirewallRule interface {
    ID() string
    WellKnownService() string
    WhitelistCIDRs() []string

FirewallRule represents a firewall ruleset for a known service type, with whitelist CIDRs.

type FirewallRuleArgs Uses

type FirewallRuleArgs struct {
    ID               string
    WellKnownService string
    WhitelistCIDRs   []string

FirewallRuleArgs is an argument struct used to add a firewall rule.

type HasAnnotations Uses

type HasAnnotations interface {
    Annotations() map[string]string

HasAnnotations defines the common methods for setting and getting annotations for the various entities.

type HasConstraints Uses

type HasConstraints interface {
    Constraints() Constraints

HasConstraints defines the common methods for setting and getting constraints for the various entities.

type HasModificationStatus Uses

type HasModificationStatus interface {
    ModificationStatus() Status
    // SetModificationStatus allows the changing of the modification status, of
    // a type, which is meant to highlight the changing to a machine instance
    // after it's been provisioned.

HasModificationStatus defines the comment methods for setting and getting status entries for the various entities that are modified by actions. The modification changes, are changes that can alter the machine instance and setting the status can then be surfaced to the operator using the status. This is different from agent-status or machine-status, where the statuses tend to imply how the machine health is during a provisioning cycle or hook integration. Statuses that are expected: Applied, Error.

type HasOperatorStatus Uses

type HasOperatorStatus interface {
    OperatorStatus() Status

type HasStatus Uses

type HasStatus interface {
    Status() Status

HasStatus defines the common methods for setting and getting status entries for the various entities.

type HasStatusHistory Uses

type HasStatusHistory interface {
    StatusHistory() []Status

HasStatusHistory defines the common methods for setting and getting historical status entries for the various entities.

type IPAddress Uses

type IPAddress interface {
    ProviderID() string
    DeviceName() string
    MachineID() string
    SubnetCIDR() string
    ConfigMethod() string
    Value() string
    DNSServers() []string
    DNSSearchDomains() []string
    GatewayAddress() string
    IsDefaultGateway() bool

IPAddress represents an IP address.

type IPAddressArgs Uses

type IPAddressArgs struct {
    ProviderID       string
    DeviceName       string
    MachineID        string
    SubnetCIDR       string
    ConfigMethod     string
    Value            string
    DNSServers       []string
    DNSSearchDomains []string
    GatewayAddress   string
    IsDefaultGateway bool

IPAddressArgs is an argument struct used to create a new internal ipaddress type that supports the IPAddress interface.

type LinkLayerDevice Uses

type LinkLayerDevice interface {
    Name() string
    MTU() uint
    ProviderID() string
    MachineID() string
    Type() string
    MACAddress() string
    IsAutoStart() bool
    IsUp() bool
    ParentName() string

LinkLayerDevice represents a link layer device.

type LinkLayerDeviceArgs Uses

type LinkLayerDeviceArgs struct {
    Name        string
    MTU         uint
    ProviderID  string
    MachineID   string
    Type        string
    MACAddress  string
    IsAutoStart bool
    IsUp        bool
    ParentName  string

LinkLayerDeviceArgs is an argument struct used to create a new internal linklayerdevice type that supports the LinkLayerDevice interface.

type Machine Uses

type Machine interface {

    Id() string
    Tag() names.MachineTag
    Nonce() string
    PasswordHash() string
    Placement() string
    Series() string
    ContainerType() string
    Jobs() []string
    SupportedContainers() ([]string, bool)

    Instance() CloudInstance

    // Life() string -- only transmit alive things?
    ProviderAddresses() []Address
    MachineAddresses() []Address
    SetAddresses(machine []AddressArgs, provider []AddressArgs)

    PreferredPublicAddress() Address
    PreferredPrivateAddress() Address
    SetPreferredAddresses(public AddressArgs, private AddressArgs)

    Tools() AgentTools

    Containers() []Machine
    AddContainer(MachineArgs) Machine

    BlockDevices() []BlockDevice
    AddBlockDevice(BlockDeviceArgs) BlockDevice

    OpenedPorts() []OpenedPorts
    AddOpenedPorts(OpenedPortsArgs) OpenedPorts

    Validate() error

Machine represents an existing live machine or container running in the model.

type MachineArgs Uses

type MachineArgs struct {
    Id            names.MachineTag
    Nonce         string
    PasswordHash  string
    Placement     string
    Series        string
    ContainerType string
    Jobs          []string
    // A null value means that we don't yet know which containers
    // are supported. An empty slice means 'no containers are supported'.
    SupportedContainers *[]string

MachineArgs is an argument struct used to add a machine to the Model.

type MeterStatus Uses

type MeterStatus interface {
    // Code returns the traffic light colour code of meter status.
    Code() string
    // Info returns extra information corresponding to the traffic light colour.
    Info() string

MeterStatus represents the meter status of the model.

type Model Uses

type Model interface {

    Type() string
    Cloud() string
    CloudRegion() string
    CloudCredential() CloudCredential
    Tag() names.ModelTag
    Owner() names.UserTag
    Config() map[string]interface{}
    LatestToolsVersion() version.Number
    EnvironVersion() int

    // UpdateConfig overwrites existing config values with those specified.

    // Blocks returns a map of block type to the message associated with that
    // block.
    Blocks() map[string]string

    Users() []User

    Machines() []Machine
    AddMachine(MachineArgs) Machine

    Applications() []Application
    AddApplication(ApplicationArgs) Application

    Relations() []Relation
    AddRelation(RelationArgs) Relation

    RemoteEntities() []RemoteEntity
    AddRemoteEntity(RemoteEntityArgs) RemoteEntity

    RelationNetworks() []RelationNetwork
    AddRelationNetwork(RelationNetworkArgs) RelationNetwork

    Spaces() []Space
    AddSpace(SpaceArgs) Space

    LinkLayerDevices() []LinkLayerDevice
    AddLinkLayerDevice(LinkLayerDeviceArgs) LinkLayerDevice

    Subnets() []Subnet
    AddSubnet(SubnetArgs) Subnet

    IPAddresses() []IPAddress
    AddIPAddress(IPAddressArgs) IPAddress

    SSHHostKeys() []SSHHostKey
    AddSSHHostKey(SSHHostKeyArgs) SSHHostKey

    CloudImageMetadata() []CloudImageMetadata
    AddCloudImageMetadata(CloudImageMetadataArgs) CloudImageMetadata

    Actions() []Action
    AddAction(ActionArgs) Action

    Sequences() map[string]int
    SetSequence(name string, value int)

    Volumes() []Volume
    AddVolume(VolumeArgs) Volume

    FirewallRules() []FirewallRule
    AddFirewallRule(FirewallRuleArgs) FirewallRule

    Filesystems() []Filesystem
    AddFilesystem(FilesystemArgs) Filesystem

    Storages() []Storage
    AddStorage(StorageArgs) Storage

    StoragePools() []StoragePool
    AddStoragePool(StoragePoolArgs) StoragePool

    RemoteApplications() []RemoteApplication
    AddRemoteApplication(RemoteApplicationArgs) RemoteApplication

    Validate() error

    SetSLA(level, owner, credentials string) SLA
    SLA() SLA

    SetMeterStatus(code, info string) MeterStatus
    MeterStatus() MeterStatus

Model is a database agnostic representation of an existing model.

func Deserialize Uses

func Deserialize(bytes []byte) (Model, error)

Deserialize constructs a Model from a serialized YAML byte stream. The normal use for this is to construct the Model representation after getting the byte stream from an API connection or read from a file.

func NewModel Uses

func NewModel(args ModelArgs) Model

NewModel returns a Model based on the args specified.

type ModelArgs Uses

type ModelArgs struct {
    Type               string
    Owner              names.UserTag
    Config             map[string]interface{}
    LatestToolsVersion version.Number
    EnvironVersion     int
    Blocks             map[string]string
    Cloud              string
    CloudRegion        string

ModelArgs represent the bare minimum information that is needed to represent a model.

type OpenedPorts Uses

type OpenedPorts interface {
    SubnetID() string
    OpenPorts() []PortRange

OpenedPorts represents a collection of port ranges that are open on a particular subnet. OpenedPorts are always associated with a Machine.

type OpenedPortsArgs Uses

type OpenedPortsArgs struct {
    SubnetID    string
    OpenedPorts []PortRangeArgs

OpenedPortsArgs is an argument struct used to add a set of opened port ranges to a machine.

type Payload Uses

type Payload interface {
    Name() string
    Type() string
    RawID() string
    State() string
    Labels() []string

Payload represents a charm payload for a unit.

type PayloadArgs Uses

type PayloadArgs struct {
    Name   string
    Type   string
    RawID  string
    State  string
    Labels []string

PayloadArgs is an argument struct used to create a new internal payload type that supports the Payload interface.

type PortRange Uses

type PortRange interface {
    UnitName() string
    FromPort() int
    ToPort() int
    Protocol() string

PortRange represents one or more contiguous ports opened by a particular Unit.

type PortRangeArgs Uses

type PortRangeArgs struct {
    UnitName string
    FromPort int
    ToPort   int
    Protocol string

PortRangeArgs is an argument struct used to create a PortRange. This is only done as part of creating OpenedPorts for a Machine.

type Relation Uses

type Relation interface {

    Id() int
    Key() string
    Suspended() bool
    SuspendedReason() string

    Endpoints() []Endpoint
    AddEndpoint(EndpointArgs) Endpoint

Relation represents a relationship between two applications, or a peer relation between different instances of an application.

type RelationArgs Uses

type RelationArgs struct {
    Id              int
    Key             string
    Suspended       bool
    SuspendedReason string

RelationArgs is an argument struct used to specify a relation.

type RelationNetwork Uses

type RelationNetwork interface {
    ID() string
    RelationKey() string
    CIDRS() []string

RelationNetwork instances describe the ingress or egress networks required for a cross model relation.

type RelationNetworkArgs Uses

type RelationNetworkArgs struct {
    ID          string
    RelationKey string
    CIDRS       []string

RelationNetworkArgs is an argument struct used to add a relation network to a model.

type RemoteApplication Uses

type RemoteApplication interface {

    Tag() names.ApplicationTag
    Name() string
    OfferUUID() string
    URL() string
    SourceModelTag() names.ModelTag
    IsConsumerProxy() bool

    Endpoints() []RemoteEndpoint
    AddEndpoint(RemoteEndpointArgs) RemoteEndpoint

    Spaces() []RemoteSpace
    AddSpace(RemoteSpaceArgs) RemoteSpace

    Bindings() map[string]string

RemoteApplication represents an application in another model that can participate in a relation in this model.

type RemoteApplicationArgs Uses

type RemoteApplicationArgs struct {
    Tag             names.ApplicationTag
    OfferUUID       string
    URL             string
    SourceModel     names.ModelTag
    IsConsumerProxy bool
    Bindings        map[string]string

RemoteApplicationArgs is an argument struct used to add a remote application to the Model.

type RemoteEndpoint Uses

type RemoteEndpoint interface {
    Name() string
    Role() string
    Interface() string

RemoteEndpoint represents a connection point that can be related to another application.

type RemoteEndpointArgs Uses

type RemoteEndpointArgs struct {
    Name      string
    Role      string
    Interface string

RemoteEndpointArgs is an argument struct used to add a remote endpoint to a remote application.

type RemoteEntity Uses

type RemoteEntity interface {
    ID() string
    Token() string
    Macaroon() string

RemoteEntity represents the internal state of a remote entity. Remote entities may be exported local entities, or imported remote entities

type RemoteEntityArgs Uses

type RemoteEntityArgs struct {
    ID       string
    Token    string
    Macaroon string

RemoteEntityArgs is an argument struct used to add a remote entity.

type RemoteSpace Uses

type RemoteSpace interface {
    CloudType() string
    Name() string
    ProviderId() string
    ProviderAttributes() map[string]interface{}

    Subnets() []Subnet
    AddSubnet(SubnetArgs) Subnet

RemoteSpace represents a network space that endpoints of remote applications might be connected to.

type RemoteSpaceArgs Uses

type RemoteSpaceArgs struct {
    CloudType          string
    Name               string
    ProviderId         string
    ProviderAttributes map[string]interface{}

RemoteSpaceArgs is an argument struct used to add a remote space to a remote application.

type Resource Uses

type Resource interface {
    // Name returns the name of the resource.
    Name() string

    // SetApplicationRevision sets the application revision of the
    // resource.
    SetApplicationRevision(ResourceRevisionArgs) ResourceRevision

    // ApplicationRevision returns the revision of the resource as set
    // on the application. May return nil if SetApplicationRevision
    // hasn't been called yet.
    ApplicationRevision() ResourceRevision

    // SetCharmStoreRevision sets the application revision of the
    // resource.
    SetCharmStoreRevision(ResourceRevisionArgs) ResourceRevision

    // CharmStoreRevision returns the revision the charmstore has, as
    // seen at the last poll. May return nil if SetCharmStoreRevision
    // hasn't been called yet.
    CharmStoreRevision() ResourceRevision

    // Validate checks the consistency of the resource and its
    // revisions.
    Validate() error

Resource represents an application resource.

type ResourceArgs Uses

type ResourceArgs struct {
    Name string

ResourceArgs is an argument struct used to create a new internal resource type that supports the Resource interface.

type ResourceRevision Uses

type ResourceRevision interface {
    Revision() int
    Type() string
    Path() string
    Description() string
    Origin() string
    FingerprintHex() string
    Size() int64
    Timestamp() time.Time
    Username() string

ResourceRevision represents a revision of an application resource.

type ResourceRevisionArgs Uses

type ResourceRevisionArgs struct {
    Revision       int
    Type           string
    Path           string
    Description    string
    Origin         string
    FingerprintHex string
    Size           int64
    Timestamp      time.Time
    Username       string

ResourceRevisionArgs is an argument struct used to add a new internal resource revision to a Resource.

type SLA Uses

type SLA interface {
    // Level returns the level of the sla.
    Level() string
    // Owner returns the owner of the sla.
    Owner() string
    // Credentials returns the credentials of the sla.
    Credentials() string

SLA represents the sla for the model.

type SSHHostKey Uses

type SSHHostKey interface {
    MachineID() string
    Keys() []string

SSHHostKey represents an ssh host key.

type SSHHostKeyArgs Uses

type SSHHostKeyArgs struct {
    MachineID string
    Keys      []string

SSHHostKeyArgs is an argument struct used to create a new internal sshHostKey type that supports the SSHHostKey interface.

type Space Uses

type Space interface {
    Id() string
    Name() string
    Public() bool
    ProviderID() string

Space represents a network space, which is a named collection of subnets.

type SpaceArgs Uses

type SpaceArgs struct {
    Id         string
    Name       string
    Public     bool
    ProviderID string

SpaceArgs is an argument struct used to create a new internal space type that supports the Space interface.

type Status Uses

type Status interface {
    Value() string
    Message() string
    Data() map[string]interface{}
    Updated() time.Time
    NeverSet() bool

Status represents an agent, application, or workload status.

type StatusArgs Uses

type StatusArgs struct {
    Value    string
    Message  string
    Data     map[string]interface{}
    Updated  time.Time
    NeverSet bool

StatusArgs is an argument struct used to set the agent, application, or workload status.

type StatusHistory_ Uses

type StatusHistory_ struct {
    Version int             `yaml:"version"`
    History []*StatusPoint_ `yaml:"history"`

func (*StatusHistory_) SetStatusHistory Uses

func (s *StatusHistory_) SetStatusHistory(args []StatusArgs)

SetStatusHistory implements HasStatusHistory.

func (*StatusHistory_) StatusHistory Uses

func (s *StatusHistory_) StatusHistory() []Status

StatusHistory implements HasStatusHistory.

type StatusPoint_ Uses

type StatusPoint_ struct {
    Value_    string                 `yaml:"value"`
    Message_  string                 `yaml:"message,omitempty"`
    Data_     map[string]interface{} `yaml:"data,omitempty"`
    Updated_  time.Time              `yaml:"updated"`
    NeverSet_ bool                   `yaml:"neverset"`

StatusPoint_ implements Status, and represents the status of an entity at a point in time. Used in the serialization of both status and StatusHistory_.

func (*StatusPoint_) Data Uses

func (a *StatusPoint_) Data() map[string]interface{}

Data implements Status.

func (*StatusPoint_) Message Uses

func (a *StatusPoint_) Message() string

Message implements Status.

func (*StatusPoint_) NeverSet Uses

func (a *StatusPoint_) NeverSet() bool

NeverSet implements Status.

func (*StatusPoint_) Updated Uses

func (a *StatusPoint_) Updated() time.Time

Updated implements Status.

func (*StatusPoint_) Value Uses

func (a *StatusPoint_) Value() string

Value implements Status.

type Storage Uses

type Storage interface {
    Tag() names.StorageTag
    Kind() string
    // Owner returns the tag of the application or unit that owns this storage
    // instance.
    Owner() (names.Tag, error)
    Name() string

    Attachments() []names.UnitTag

    // Constraints returns the storage instance constraints, and a boolean
    // reporting whether there are any.
    Constraints() (StorageInstanceConstraints, bool)

    Validate() error

Storage represents the state of a unit or application-wide storage instance in the model.

type StorageArgs Uses

type StorageArgs struct {
    Tag         names.StorageTag
    Kind        string
    Owner       names.Tag
    Name        string
    Attachments []names.UnitTag
    Constraints *StorageInstanceConstraints

StorageArgs is an argument struct used to add a storage to the Model.

type StorageConstraint Uses

type StorageConstraint interface {
    // Pool is the name of the storage pool from which to provision the
    // storage instances.
    Pool() string
    // Size is the required size of the storage instances, in MiB.
    Size() uint64
    // Count is the required number of storage instances.
    Count() uint64

StorageConstraint represents the user-specified constraints for provisioning storage instances for an application unit.

type StorageConstraintArgs Uses

type StorageConstraintArgs struct {
    Pool  string
    Size  uint64
    Count uint64

StorageConstraintArgs is an argument struct used to create a new internal storageconstraint type that supports the StorageConstraint interface.

type StorageInstanceConstraints Uses

type StorageInstanceConstraints struct {
    Pool string
    Size uint64

StorageInstanceConstraints represents the user-specified constraints for provisioning a single storage instance for an application unit.

type StoragePool Uses

type StoragePool interface {
    Name() string
    Provider() string
    Attributes() map[string]interface{}

StoragePool represents a named storage pool and its settings.

type StoragePoolArgs Uses

type StoragePoolArgs struct {
    Name       string
    Provider   string
    Attributes map[string]interface{}

StoragePoolArgs is an argument struct used to add a storage pool to the Model.

type Subnet Uses

type Subnet interface {
    ID() string
    ProviderId() string
    ProviderNetworkId() string
    ProviderSpaceId() string
    CIDR() string
    VLANTag() int
    AvailabilityZones() []string
    IsPublic() bool
    SpaceID() string
    SpaceName() string
    FanLocalUnderlay() string
    FanOverlay() string

Subnet represents a network subnet.

type SubnetArgs Uses

type SubnetArgs struct {
    ID                string
    ProviderId        string
    ProviderNetworkId string
    ProviderSpaceId   string
    CIDR              string
    VLANTag           int
    AvailabilityZones []string
    IsPublic          bool

    // SpaceName is now deprecated and not used past version 4.
    SpaceName string

    SpaceID          string
    FanLocalUnderlay string
    FanOverlay       string

SubnetArgs is an argument struct used to create a new internal subnet type that supports the Subnet interface.

type Unit Uses

type Unit interface {

    Tag() names.UnitTag
    Name() string
    Type() string
    Machine() names.MachineTag

    PasswordHash() string

    Principal() names.UnitTag
    Subordinates() []names.UnitTag

    MeterStatusCode() string
    MeterStatusInfo() string

    Tools() AgentTools

    WorkloadStatus() Status

    WorkloadStatusHistory() []Status

    WorkloadVersion() string

    WorkloadVersionHistory() []Status

    AgentStatus() Status

    AgentStatusHistory() []Status

    AddResource(UnitResourceArgs) UnitResource
    Resources() []UnitResource

    AddPayload(PayloadArgs) Payload
    Payloads() []Payload

    CloudContainer() CloudContainer

    Validate() error

Unit represents an instance of a unit in a model.

type UnitArgs Uses

type UnitArgs struct {
    Tag          names.UnitTag
    Type         string
    Machine      names.MachineTag
    PasswordHash string
    Principal    names.UnitTag
    Subordinates []names.UnitTag

    WorkloadVersion string
    MeterStatusCode string
    MeterStatusInfo string

    CloudContainer *CloudContainerArgs

UnitArgs is an argument struct used to add a Unit to a Application in the Model.

type UnitResource Uses

type UnitResource interface {
    // Name returns the name of the resource.
    Name() string

    // Revision returns the revision of the resource as used by a
    // particular unit.
    Revision() ResourceRevision

UnitResource represents the revision of a resource used by a unit.

type UnitResourceArgs Uses

type UnitResourceArgs struct {
    Name         string
    RevisionArgs ResourceRevisionArgs

UnitResourceArgs is an argument struct used to specify the revision of a resource used by a unit.

type User Uses

type User interface {
    Name() names.UserTag
    DisplayName() string
    CreatedBy() names.UserTag
    DateCreated() time.Time
    LastConnection() time.Time
    Access() string

User represents a user of the model. Users are able to connect to, and depending on the read only flag, modify the model.

type UserArgs Uses

type UserArgs struct {
    Name           names.UserTag
    DisplayName    string
    CreatedBy      names.UserTag
    DateCreated    time.Time
    LastConnection time.Time
    Access         string

type Volume Uses

type Volume interface {

    Tag() names.VolumeTag
    Storage() names.StorageTag

    Provisioned() bool

    Size() uint64
    Pool() string

    HardwareID() string
    WWN() string
    VolumeID() string
    Persistent() bool

    Attachments() []VolumeAttachment
    AttachmentPlans() []VolumeAttachmentPlan
    AddAttachment(VolumeAttachmentArgs) VolumeAttachment
    AddAttachmentPlan(VolumeAttachmentPlanArgs) VolumeAttachmentPlan

Volume represents a volume (disk, logical volume, etc.) in the model.

type VolumeArgs Uses

type VolumeArgs struct {
    Tag         names.VolumeTag
    Storage     names.StorageTag
    Provisioned bool
    Size        uint64
    Pool        string
    HardwareID  string
    WWN         string
    VolumeID    string
    Persistent  bool

VolumeArgs is an argument struct used to add a volume to the Model.

type VolumeAttachment Uses

type VolumeAttachment interface {
    Host() names.Tag
    Provisioned() bool
    ReadOnly() bool
    DeviceName() string
    DeviceLink() string
    BusAddress() string
    VolumePlanInfo() VolumePlanInfo

VolumeAttachment represents a volume attached to a machine.

type VolumeAttachmentArgs Uses

type VolumeAttachmentArgs struct {
    Host        names.Tag
    Provisioned bool
    ReadOnly    bool
    DeviceName  string
    DeviceLink  string
    BusAddress  string

    DeviceType       string
    DeviceAttributes map[string]string

VolumeAttachmentArgs is an argument struct used to add information about the cloud instance to a Volume.

type VolumeAttachmentPlan Uses

type VolumeAttachmentPlan interface {
    Machine() names.MachineTag
    BlockDevice() BlockDevice
    VolumePlanInfo() VolumePlanInfo

type VolumeAttachmentPlanArgs Uses

type VolumeAttachmentPlanArgs struct {
    Machine names.MachineTag

    DeviceName     string
    DeviceLinks    []string
    Label          string
    UUID           string
    HardwareId     string
    WWN            string
    BusAddress     string
    Size           uint64
    FilesystemType string
    InUse          bool
    MountPoint     string

    DeviceType       string
    DeviceAttributes map[string]string

VolumeAttachmentPlanArgs is an argument struct used to add information about a volume attached to an instance.

type VolumePlanInfo Uses

type VolumePlanInfo interface {
    DeviceType() string
    DeviceAttributes() map[string]string

Package description imports 11 packages (graph) and is imported by 35 packages. Updated 2019-12-05. Refresh now. Tools for package owners.