README

juju/names

This package provides helpers for handling Juju entity names.

Expand ▾ Collapse ▴

Documentation

Index

Examples

Constants

View Source
const (
	ContainerTypeSnippet = "[a-z]+"
	ContainerSnippet     = "/" + ContainerTypeSnippet + "/" + NumberSnippet + ""
	MachineSnippet       = NumberSnippet + "(?:" + ContainerSnippet + ")*"
)
View Source
const (
	SpaceTagKind = "space"
	SpaceSnippet = "(?:[a-z0-9]+(?:-[a-z0-9]+)*)"
)
View Source
const (
	StorageTagKind = "storage"

	// StorageNameSnippet is the regular expression that describes valid
	// storage names (without the storage instance sequence number).
	StorageNameSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)"
)
View Source
const (
	// UppercaseSnippet declares an non-compiled regex string for matching
	// uppercase characters.
	UppercaseSnippet = "[A-Z]"
	// NumberSnippet is a non-compiled regexp that can be composed with other
	// snippets for validating small number sequences.
	NumberSnippet = "(?:0|[1-9][0-9]*)"
)
View Source
const (
	UserTagKind     = "user"
	LocalUserDomain = "local"
)
View Source
const ActionSnippet = NumberSnippet

    ActionSnippet defines the regexp for a valid Action Id. Actions are identified by a unique, incrementing number.

    View Source
    const ActionTagKind = "action"
    View Source
    const (
    	ApplicationOfferSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)"
    )
    View Source
    const ApplicationOfferTagKind = "applicationoffer"
    View Source
    const (
    	// ApplicationSnippet is a non-compiled regexp that can be composed with
    	// other snippets to form a valid application regexp.
    	ApplicationSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)"
    )
    View Source
    const ApplicationTagKind = "application"

      ApplicationTagKind defines a tag for identifying applications.

      View Source
      const CAASModelTagKind = "caasmodel"
      View Source
      const CharmTagKind = "charm"

        CharmTagKind specifies charm tag kind

        View Source
        const CloudCredentialTagKind = "cloudcred"
        View Source
        const CloudTagKind = "cloud"
        View Source
        const ControllerAgentTagKind = "controller"

          ControllerAgentTagKind indicates that a tag belongs to a controller agent.

          View Source
          const ControllerTagKind = "controller"

            ControllerTagKind indicates that a tag belongs to a controller.

            View Source
            const EnvironTagKind = "environment"

              EnvironTagKind is DEPRECATED: model tags are used instead.

              View Source
              const FilesystemTagKind = "filesystem"
              View Source
              const IPAddressTagKind = "ipaddress"
              View Source
              const MachineTagKind = "machine"
              View Source
              const ModelTagKind = "model"
              View Source
              const OperationSnippet = NumberSnippet

                OperationSnippet defines the regexp for a valid Operation Id. Operations are identified by a unique, incrementing number.

                View Source
                const OperationTagKind = "operation"
                View Source
                const (
                	// PayloadTagKind is used as the prefix for the string
                	// representation of payload tags.
                	PayloadTagKind = "payload"
                )
                View Source
                const RelationSnippet = "[a-z][a-z0-9]*(?:[_-][a-z0-9]+)*"
                View Source
                const RelationTagKind = "relation"
                View Source
                const SubnetTagKind = "subnet"
                View Source
                const UnitSnippet = "(" + ApplicationSnippet + ")/(" + NumberSnippet + ")"

                  UnitSnippet defines the regexp for a valid Unit Id.

                  View Source
                  const UnitTagKind = "unit"
                  View Source
                  const VolumeTagKind = "volume"

                  Variables

                  View Source
                  var (
                  	// SeriesSnippet is a regular expression representing series
                  	SeriesSnippet = "[a-z]+([a-z0-9]+)?"
                  
                  	// CharmNameSnippet is a regular expression representing charm name
                  	CharmNameSnippet = "[a-z][a-z0-9]*(-[a-z0-9]*[a-z][a-z0-9]*)*"
                  )

                  Functions

                  func IsContainerMachine

                  func IsContainerMachine(id string) bool

                    IsContainerMachine returns whether id is a valid container machine id.

                    func IsValidAction

                    func IsValidAction(id string) bool

                      IsValidAction returns whether id is a valid action id.

                      func IsValidApplication

                      func IsValidApplication(name string) bool

                        IsValidApplication returns whether name is a valid application name.

                        func IsValidApplicationOffer

                        func IsValidApplicationOffer(name string) bool

                          IsValidApplicationOffer returns whether name is a valid application offer name.

                          func IsValidCAASModel

                          func IsValidCAASModel(id string) bool

                            IsValidCAASModel returns whether id is a valid CAAS model UUID.

                            func IsValidCAASModelName

                            func IsValidCAASModelName(name string) bool

                              IsValidCAASModelName returns whether name is a valid string safe for a CAAS model name.

                              func IsValidCharm

                              func IsValidCharm(url string) bool

                                IsValidCharm returns whether name is a valid charm url.

                                func IsValidCloud

                                func IsValidCloud(id string) bool

                                  IsValidCloud returns whether id is a valid cloud ID.

                                  func IsValidCloudCredential

                                  func IsValidCloudCredential(id string) bool

                                    IsValidCloudCredential returns whether id is a valid cloud credential ID.

                                    func IsValidCloudCredentialName

                                    func IsValidCloudCredentialName(name string) bool

                                      IsValidCloudCredentialName returns whether name is a valid cloud credential name.

                                      func IsValidController

                                      func IsValidController(id string) bool

                                        IsValidController returns whether id is a valid controller UUID.

                                        func IsValidControllerAgent

                                        func IsValidControllerAgent(id string) bool

                                          IsValidControllerAgent returns whether id is a valid controller agent id.

                                          func IsValidControllerName

                                          func IsValidControllerName(name string) bool

                                            IsValidControllerName returns whether name is a valid string safe for a controller name.

                                            func IsValidEnvironment

                                            func IsValidEnvironment(id string) bool

                                              IsValidEnvironment returns whether id is a valid environment UUID.

                                              func IsValidFilesystem

                                              func IsValidFilesystem(id string) bool

                                                IsValidFilesystem returns whether id is a valid filesystem id.

                                                func IsValidIPAddress

                                                func IsValidIPAddress(id string) bool

                                                  IsValidIPAddress returns whether id is a valid IP address ID. Here it simply is checked if it is a valid UUID.

                                                  func IsValidMachine

                                                  func IsValidMachine(id string) bool

                                                    IsValidMachine returns whether id is a valid machine id.

                                                    func IsValidModel

                                                    func IsValidModel(id string) bool

                                                      IsValidModel returns whether id is a valid model UUID.

                                                      func IsValidModelName

                                                      func IsValidModelName(name string) bool

                                                        IsValidModelName returns whether name is a valid string safe for a model name.

                                                        func IsValidOperation

                                                        func IsValidOperation(id string) bool

                                                          IsValidOperation returns whether id is a valid operation id.

                                                          func IsValidPayload

                                                          func IsValidPayload(id string) bool

                                                            IsValidPayload returns whether id is a valid Juju ID for a charm payload. The ID must be a valid alpha-numeric (plus hyphens).

                                                            func IsValidRelation

                                                            func IsValidRelation(key string) bool

                                                              IsValidRelation returns whether key is a valid relation key.

                                                              func IsValidSpace

                                                              func IsValidSpace(name string) bool

                                                                IsValidSpace reports whether name is a valid space name.

                                                                func IsValidStorage

                                                                func IsValidStorage(id string) bool

                                                                  IsValidStorage returns whether id is a valid storage instance ID.

                                                                  func IsValidSubnet

                                                                  func IsValidSubnet(id string) bool

                                                                    IsValidSubnet returns whether id is a valid subnet id.

                                                                    func IsValidUnit

                                                                    func IsValidUnit(name string) bool

                                                                      IsValidUnit returns whether name is a valid unit name.

                                                                      func IsValidUser

                                                                      func IsValidUser(id string) bool

                                                                        IsValidUser returns whether id is a valid user id. Valid users may or may not be qualified with an @domain suffix. Examples of valid users include bob, bob@local, bob@somewhere-else, 0-a-f@123.

                                                                        func IsValidUserDomain

                                                                        func IsValidUserDomain(domain string) bool

                                                                          IsValidUserDomain returns whether the given user domain is valid.

                                                                          func IsValidUserName

                                                                          func IsValidUserName(name string) bool

                                                                            IsValidUserName returns whether the given name is a valid name part of a user. That is, usernames with a domain suffix will return false.

                                                                            func IsValidVolume

                                                                            func IsValidVolume(id string) bool

                                                                              IsValidVolume returns whether id is a valid volume ID.

                                                                              func ReadableString

                                                                              func ReadableString(tag Tag) string

                                                                                ReadableString returns a human-readable string from the tag passed in. It currently supports unit and machine tags. Support for additional types can be added in as needed.

                                                                                func StorageName

                                                                                func StorageName(id string) (string, error)

                                                                                  StorageName returns the storage name from a storage instance ID. StorageName returns an error if "id" is not a valid storage instance ID.

                                                                                  func TagKind

                                                                                  func TagKind(tag string) (string, error)

                                                                                    TagKind returns one of the *TagKind constants for the given tag, or an error if none matches.

                                                                                    func UnitApplication

                                                                                    func UnitApplication(unitName string) (string, error)

                                                                                      UnitApplication returns the name of the application that the unit is associated with. It returns an error if unitName is not a valid unit name.

                                                                                      func UnitNumber

                                                                                      func UnitNumber(unitName string) (int, error)

                                                                                        UnitNumber returns the number of the unit within the application. It returns an error if unitName is not a valid unit name.

                                                                                        func ValidateApplicationName

                                                                                        func ValidateApplicationName(name string) error

                                                                                          ValidateApplicationName takes a name and attempts to validate the application name, before returning a reason why it's not valid.

                                                                                          This should supersede IsValidApplication. It provides a lot more granular information about why something might be wrong, which is a much better UX.

                                                                                          Types

                                                                                          type ActionTag

                                                                                          type ActionTag struct {
                                                                                          	// Tags that are serialized need to have fields exported.
                                                                                          	ID string
                                                                                          }

                                                                                          func NewActionTag

                                                                                          func NewActionTag(id string) ActionTag

                                                                                            NewActionTag returns the tag of an action with the given id (UUID).

                                                                                            func ParseActionTag

                                                                                            func ParseActionTag(actionTag string) (ActionTag, error)

                                                                                              ParseActionTag parses an action tag string.

                                                                                              func (ActionTag) Id

                                                                                              func (t ActionTag) Id() string

                                                                                              func (ActionTag) Kind

                                                                                              func (t ActionTag) Kind() string

                                                                                              func (ActionTag) String

                                                                                              func (t ActionTag) String() string

                                                                                              type ApplicationOfferTag

                                                                                              type ApplicationOfferTag struct {
                                                                                              	Name string
                                                                                              }

                                                                                              func NewApplicationOfferTag

                                                                                              func NewApplicationOfferTag(applicationOfferName string) ApplicationOfferTag

                                                                                                NewApplicationOfferTag returns the tag for the application with the given name.

                                                                                                func ParseApplicationOfferTag

                                                                                                func ParseApplicationOfferTag(applicationOfferTag string) (ApplicationOfferTag, error)

                                                                                                  ParseApplicationOfferTag parses a application tag string.

                                                                                                  func (ApplicationOfferTag) Id

                                                                                                  func (t ApplicationOfferTag) Id() string

                                                                                                  func (ApplicationOfferTag) Kind

                                                                                                  func (t ApplicationOfferTag) Kind() string

                                                                                                  func (ApplicationOfferTag) String

                                                                                                  func (t ApplicationOfferTag) String() string

                                                                                                  type ApplicationTag

                                                                                                  type ApplicationTag struct {
                                                                                                  	Name string
                                                                                                  }

                                                                                                    ApplicationTag defines a named tagged application.

                                                                                                    func NewApplicationTag

                                                                                                    func NewApplicationTag(applicationName string) ApplicationTag

                                                                                                      NewApplicationTag returns the tag for the application with the given name.

                                                                                                      func ParseApplicationTag

                                                                                                      func ParseApplicationTag(applicationTag string) (ApplicationTag, error)

                                                                                                        ParseApplicationTag parses a application tag string.

                                                                                                        func (ApplicationTag) Id

                                                                                                        func (t ApplicationTag) Id() string

                                                                                                          Id returns the underlying name of an application as the Id.

                                                                                                          func (ApplicationTag) Kind

                                                                                                          func (t ApplicationTag) Kind() string

                                                                                                            Kind returns the application tag.

                                                                                                            func (ApplicationTag) String

                                                                                                            func (t ApplicationTag) String() string

                                                                                                            type CAASModelTag

                                                                                                            type CAASModelTag struct {
                                                                                                            	// contains filtered or unexported fields
                                                                                                            }

                                                                                                              CAASModelTag represents a tag used to describe a model.

                                                                                                              func NewCAASModelTag

                                                                                                              func NewCAASModelTag(uuid string) CAASModelTag

                                                                                                                NewCAASModelTag returns the tag of a CAAS model with the given CAAS model UUID.

                                                                                                                func ParseCAASModelTag

                                                                                                                func ParseCAASModelTag(caasModelTag string) (CAASModelTag, error)

                                                                                                                  ParseCAASModelTag parses a CAAS model tag string.

                                                                                                                  func (CAASModelTag) Id

                                                                                                                  func (t CAASModelTag) Id() string

                                                                                                                  func (CAASModelTag) Kind

                                                                                                                  func (t CAASModelTag) Kind() string

                                                                                                                  func (CAASModelTag) String

                                                                                                                  func (t CAASModelTag) String() string

                                                                                                                  type CharmTag

                                                                                                                  type CharmTag struct {
                                                                                                                  	// contains filtered or unexported fields
                                                                                                                  }

                                                                                                                    CharmTag represents tag for charm using charm's URL

                                                                                                                    func NewCharmTag

                                                                                                                    func NewCharmTag(charmURL string) CharmTag

                                                                                                                      NewCharmTag returns the tag for the charm with the given url. It will panic if the given charm url is not valid.

                                                                                                                      func ParseCharmTag

                                                                                                                      func ParseCharmTag(charmTag string) (CharmTag, error)

                                                                                                                        ParseCharmTag parses a charm tag string.

                                                                                                                        func (CharmTag) Id

                                                                                                                        func (t CharmTag) Id() string

                                                                                                                          Id satisfies Tag interface. Returns charm URL.

                                                                                                                          func (CharmTag) Kind

                                                                                                                          func (t CharmTag) Kind() string

                                                                                                                            Kind satisfies Tag interface. Returns Charm tag kind.

                                                                                                                            func (CharmTag) String

                                                                                                                            func (t CharmTag) String() string

                                                                                                                              String satisfies Tag interface. Produces string representation of charm tag.

                                                                                                                              type CloudCredentialTag

                                                                                                                              type CloudCredentialTag struct {
                                                                                                                              	// contains filtered or unexported fields
                                                                                                                              }

                                                                                                                              func NewCloudCredentialTag

                                                                                                                              func NewCloudCredentialTag(id string) CloudCredentialTag

                                                                                                                                NewCloudCredentialTag returns the tag for the cloud with the given ID. It will panic if the given cloud ID is not valid.

                                                                                                                                func ParseCloudCredentialTag

                                                                                                                                func ParseCloudCredentialTag(s string) (CloudCredentialTag, error)

                                                                                                                                  ParseCloudCredentialTag parses a cloud tag string.

                                                                                                                                  func (CloudCredentialTag) Cloud

                                                                                                                                  func (t CloudCredentialTag) Cloud() CloudTag

                                                                                                                                    Cloud returns the tag of the cloud to which the credential pertains.

                                                                                                                                    func (CloudCredentialTag) Id

                                                                                                                                    func (t CloudCredentialTag) Id() string

                                                                                                                                      Id implements Tag.Id. It returns the empty string if t is zero.

                                                                                                                                      func (CloudCredentialTag) IsZero

                                                                                                                                      func (t CloudCredentialTag) IsZero() bool

                                                                                                                                        IsZero reports whether t is zero.

                                                                                                                                        func (CloudCredentialTag) Kind

                                                                                                                                        func (t CloudCredentialTag) Kind() string

                                                                                                                                          Kind is part of the Tag interface.

                                                                                                                                          func (CloudCredentialTag) Name

                                                                                                                                          func (t CloudCredentialTag) Name() string

                                                                                                                                            Name returns the cloud credential name, excluding the cloud and owner qualifiers.

                                                                                                                                            func (CloudCredentialTag) Owner

                                                                                                                                            func (t CloudCredentialTag) Owner() UserTag

                                                                                                                                              Owner returns the tag of the user that owns the credential.

                                                                                                                                              func (CloudCredentialTag) String

                                                                                                                                              func (t CloudCredentialTag) String() string

                                                                                                                                                String implements Tag.String. It returns the empty string if t is zero.

                                                                                                                                                type CloudTag

                                                                                                                                                type CloudTag struct {
                                                                                                                                                	// contains filtered or unexported fields
                                                                                                                                                }

                                                                                                                                                func NewCloudTag

                                                                                                                                                func NewCloudTag(id string) CloudTag

                                                                                                                                                  NewCloudTag returns the tag for the cloud with the given ID. It will panic if the given cloud ID is not valid.

                                                                                                                                                  func ParseCloudTag

                                                                                                                                                  func ParseCloudTag(cloudTag string) (CloudTag, error)

                                                                                                                                                    ParseCloudTag parses a cloud tag string.

                                                                                                                                                    func (CloudTag) Id

                                                                                                                                                    func (t CloudTag) Id() string

                                                                                                                                                    func (CloudTag) Kind

                                                                                                                                                    func (t CloudTag) Kind() string

                                                                                                                                                    func (CloudTag) String

                                                                                                                                                    func (t CloudTag) String() string

                                                                                                                                                    type ControllerAgentTag

                                                                                                                                                    type ControllerAgentTag struct {
                                                                                                                                                    	// contains filtered or unexported fields
                                                                                                                                                    }

                                                                                                                                                      ControllerAgentTag represents a tag used to describe a controller.

                                                                                                                                                      func NewControllerAgentTag

                                                                                                                                                      func NewControllerAgentTag(id string) ControllerAgentTag

                                                                                                                                                        NewControllerAgentTag returns the tag of an controller agent with the given id.

                                                                                                                                                        func ParseControllerAgentTag

                                                                                                                                                        func ParseControllerAgentTag(controllerAgentTag string) (ControllerAgentTag, error)

                                                                                                                                                          ParseControllerAgentTag parses a controller agent tag string.

                                                                                                                                                          func (ControllerAgentTag) Id

                                                                                                                                                          func (t ControllerAgentTag) Id() string

                                                                                                                                                            Id implements Tag.

                                                                                                                                                            func (ControllerAgentTag) Kind

                                                                                                                                                            func (t ControllerAgentTag) Kind() string

                                                                                                                                                              Kind implements Tag.

                                                                                                                                                              func (ControllerAgentTag) Number

                                                                                                                                                              func (t ControllerAgentTag) Number() int

                                                                                                                                                                Number returns the controller agent number.

                                                                                                                                                                func (ControllerAgentTag) String

                                                                                                                                                                func (t ControllerAgentTag) String() string

                                                                                                                                                                  String implements Tag.

                                                                                                                                                                  type ControllerTag

                                                                                                                                                                  type ControllerTag struct {
                                                                                                                                                                  	// contains filtered or unexported fields
                                                                                                                                                                  }

                                                                                                                                                                    ControllerTag represents a tag used to describe a controller.

                                                                                                                                                                    func NewControllerTag

                                                                                                                                                                    func NewControllerTag(uuid string) ControllerTag

                                                                                                                                                                      NewControllerTag returns the tag of an controller with the given controller UUID.

                                                                                                                                                                      func ParseControllerTag

                                                                                                                                                                      func ParseControllerTag(controllerTag string) (ControllerTag, error)

                                                                                                                                                                        ParseControllerTag parses an environ tag string.

                                                                                                                                                                        func (ControllerTag) Id

                                                                                                                                                                        func (t ControllerTag) Id() string

                                                                                                                                                                          Id implements Tag.

                                                                                                                                                                          func (ControllerTag) Kind

                                                                                                                                                                          func (t ControllerTag) Kind() string

                                                                                                                                                                            Kind implements Tag.

                                                                                                                                                                            func (ControllerTag) String

                                                                                                                                                                            func (t ControllerTag) String() string

                                                                                                                                                                              String implements Tag.

                                                                                                                                                                              type EnvironTag

                                                                                                                                                                              type EnvironTag struct {
                                                                                                                                                                              	// contains filtered or unexported fields
                                                                                                                                                                              }

                                                                                                                                                                              func NewEnvironTag

                                                                                                                                                                              func NewEnvironTag(uuid string) EnvironTag

                                                                                                                                                                                NewEnvironTag returns the tag of an environment with the given environment UUID.

                                                                                                                                                                                func ParseEnvironTag

                                                                                                                                                                                func ParseEnvironTag(environTag string) (EnvironTag, error)

                                                                                                                                                                                  ParseEnvironTag parses an environ tag string.

                                                                                                                                                                                  func (EnvironTag) Id

                                                                                                                                                                                  func (t EnvironTag) Id() string

                                                                                                                                                                                  func (EnvironTag) Kind

                                                                                                                                                                                  func (t EnvironTag) Kind() string

                                                                                                                                                                                  func (EnvironTag) String

                                                                                                                                                                                  func (t EnvironTag) String() string

                                                                                                                                                                                  type FilesystemTag

                                                                                                                                                                                  type FilesystemTag struct {
                                                                                                                                                                                  	// contains filtered or unexported fields
                                                                                                                                                                                  }

                                                                                                                                                                                  func NewFilesystemTag

                                                                                                                                                                                  func NewFilesystemTag(id string) FilesystemTag

                                                                                                                                                                                    NewFilesystemTag returns the tag for the filesystem with the given name. It will panic if the given filesystem name is not valid.

                                                                                                                                                                                    func ParseFilesystemTag

                                                                                                                                                                                    func ParseFilesystemTag(filesystemTag string) (FilesystemTag, error)

                                                                                                                                                                                      ParseFilesystemTag parses a filesystem tag string.

                                                                                                                                                                                      func (FilesystemTag) Id

                                                                                                                                                                                      func (t FilesystemTag) Id() string

                                                                                                                                                                                      func (FilesystemTag) Kind

                                                                                                                                                                                      func (t FilesystemTag) Kind() string

                                                                                                                                                                                      func (FilesystemTag) String

                                                                                                                                                                                      func (t FilesystemTag) String() string

                                                                                                                                                                                      type IPAddressTag

                                                                                                                                                                                      type IPAddressTag struct {
                                                                                                                                                                                      	// contains filtered or unexported fields
                                                                                                                                                                                      }

                                                                                                                                                                                      func NewIPAddressTag

                                                                                                                                                                                      func NewIPAddressTag(id string) IPAddressTag

                                                                                                                                                                                        NewIPAddressTag returns the tag for the IP address with the given ID (UUID).

                                                                                                                                                                                        func ParseIPAddressTag

                                                                                                                                                                                        func ParseIPAddressTag(ipAddressTag string) (IPAddressTag, error)

                                                                                                                                                                                          ParseIPAddressTag parses an IP address tag string.

                                                                                                                                                                                          func (IPAddressTag) Id

                                                                                                                                                                                          func (t IPAddressTag) Id() string

                                                                                                                                                                                          func (IPAddressTag) Kind

                                                                                                                                                                                          func (t IPAddressTag) Kind() string

                                                                                                                                                                                          func (IPAddressTag) String

                                                                                                                                                                                          func (t IPAddressTag) String() string

                                                                                                                                                                                          type MachineTag

                                                                                                                                                                                          type MachineTag struct {
                                                                                                                                                                                          	// contains filtered or unexported fields
                                                                                                                                                                                          }

                                                                                                                                                                                          func FilesystemMachine

                                                                                                                                                                                          func FilesystemMachine(tag FilesystemTag) (MachineTag, bool)

                                                                                                                                                                                            FilesystemMachine returns the machine component of the filesystem tag, and a boolean indicating whether or not there is a machine component.

                                                                                                                                                                                            func NewMachineTag

                                                                                                                                                                                            func NewMachineTag(id string) MachineTag

                                                                                                                                                                                              NewMachineTag returns the tag for the machine with the given id.

                                                                                                                                                                                              func ParseMachineTag

                                                                                                                                                                                              func ParseMachineTag(machineTag string) (MachineTag, error)

                                                                                                                                                                                                ParseMachineTag parses a machine tag string.

                                                                                                                                                                                                func VolumeMachine

                                                                                                                                                                                                func VolumeMachine(tag VolumeTag) (MachineTag, bool)

                                                                                                                                                                                                  VolumeMachine returns the machine component of the volume tag, and a boolean indicating whether or not there is a machine component.

                                                                                                                                                                                                  func (MachineTag) ChildId

                                                                                                                                                                                                  func (t MachineTag) ChildId() string

                                                                                                                                                                                                    ChildId returns just the last segment of the ID.

                                                                                                                                                                                                    func (MachineTag) ContainerType

                                                                                                                                                                                                    func (t MachineTag) ContainerType() string

                                                                                                                                                                                                      ContainerType returns the type of container for this machine. If the machine isn't a container, then the empty string is returned.

                                                                                                                                                                                                      func (MachineTag) Id

                                                                                                                                                                                                      func (t MachineTag) Id() string

                                                                                                                                                                                                      func (MachineTag) Kind

                                                                                                                                                                                                      func (t MachineTag) Kind() string

                                                                                                                                                                                                      func (MachineTag) Parent

                                                                                                                                                                                                      func (t MachineTag) Parent() Tag

                                                                                                                                                                                                        Parent returns the machineTag for the host of the container if the machineTag is a container, otherwise it returns nil.

                                                                                                                                                                                                        func (MachineTag) String

                                                                                                                                                                                                        func (t MachineTag) String() string

                                                                                                                                                                                                        type ModelTag

                                                                                                                                                                                                        type ModelTag struct {
                                                                                                                                                                                                        	// contains filtered or unexported fields
                                                                                                                                                                                                        }

                                                                                                                                                                                                          ModelTag represents a tag used to describe a model.

                                                                                                                                                                                                          func NewModelTag

                                                                                                                                                                                                          func NewModelTag(uuid string) ModelTag

                                                                                                                                                                                                            NewModelTag returns the tag of an model with the given model UUID.

                                                                                                                                                                                                            func ParseModelTag

                                                                                                                                                                                                            func ParseModelTag(modelTag string) (ModelTag, error)

                                                                                                                                                                                                              ParseModelTag parses an environ tag string.

                                                                                                                                                                                                              func (ModelTag) Id

                                                                                                                                                                                                              func (t ModelTag) Id() string

                                                                                                                                                                                                              func (ModelTag) Kind

                                                                                                                                                                                                              func (t ModelTag) Kind() string

                                                                                                                                                                                                              func (ModelTag) String

                                                                                                                                                                                                              func (t ModelTag) String() string

                                                                                                                                                                                                              type OperationTag

                                                                                                                                                                                                              type OperationTag struct {
                                                                                                                                                                                                              	// Tags that are serialized need to have fields exported.
                                                                                                                                                                                                              	ID string
                                                                                                                                                                                                              }

                                                                                                                                                                                                              func NewOperationTag

                                                                                                                                                                                                              func NewOperationTag(id string) OperationTag

                                                                                                                                                                                                                NewOperationTag returns the tag of an operation with the given id.

                                                                                                                                                                                                                func ParseOperationTag

                                                                                                                                                                                                                func ParseOperationTag(operationTag string) (OperationTag, error)

                                                                                                                                                                                                                  ParseOperationTag parses an operation tag string.

                                                                                                                                                                                                                  func (OperationTag) Id

                                                                                                                                                                                                                  func (t OperationTag) Id() string

                                                                                                                                                                                                                  func (OperationTag) Kind

                                                                                                                                                                                                                  func (t OperationTag) Kind() string

                                                                                                                                                                                                                  func (OperationTag) String

                                                                                                                                                                                                                  func (t OperationTag) String() string

                                                                                                                                                                                                                  type PayloadTag

                                                                                                                                                                                                                  type PayloadTag struct {
                                                                                                                                                                                                                  	// contains filtered or unexported fields
                                                                                                                                                                                                                  }

                                                                                                                                                                                                                    PayloadTag represents a charm payload.

                                                                                                                                                                                                                    func NewPayloadTag

                                                                                                                                                                                                                    func NewPayloadTag(id string) PayloadTag

                                                                                                                                                                                                                      NewPayloadTag returns the tag for a charm's payload with the given id.

                                                                                                                                                                                                                      func ParsePayloadTag

                                                                                                                                                                                                                      func ParsePayloadTag(tag string) (PayloadTag, error)

                                                                                                                                                                                                                        ParsePayloadTag parses a payload tag string. So ParsePayloadTag(tag.String()) === tag.

                                                                                                                                                                                                                        func (PayloadTag) Id

                                                                                                                                                                                                                        func (t PayloadTag) Id() string

                                                                                                                                                                                                                          Id implements Tag.Id. It always returns the same ID with which it was created. So NewPayloadTag(x).Id() == x for all valid x.

                                                                                                                                                                                                                          func (PayloadTag) Kind

                                                                                                                                                                                                                          func (t PayloadTag) Kind() string

                                                                                                                                                                                                                            Kind implements Tag.

                                                                                                                                                                                                                            func (PayloadTag) String

                                                                                                                                                                                                                            func (t PayloadTag) String() string

                                                                                                                                                                                                                              String implements Tag.

                                                                                                                                                                                                                              type RelationTag

                                                                                                                                                                                                                              type RelationTag struct {
                                                                                                                                                                                                                              	// contains filtered or unexported fields
                                                                                                                                                                                                                              }

                                                                                                                                                                                                                              func NewRelationTag

                                                                                                                                                                                                                              func NewRelationTag(relationKey string) RelationTag

                                                                                                                                                                                                                                NewRelationTag returns the tag for the relation with the given key.

                                                                                                                                                                                                                                func ParseRelationTag

                                                                                                                                                                                                                                func ParseRelationTag(relationTag string) (RelationTag, error)

                                                                                                                                                                                                                                  ParseRelationTag parses a relation tag string.

                                                                                                                                                                                                                                  func (RelationTag) Id

                                                                                                                                                                                                                                  func (t RelationTag) Id() string

                                                                                                                                                                                                                                  func (RelationTag) Kind

                                                                                                                                                                                                                                  func (t RelationTag) Kind() string

                                                                                                                                                                                                                                  func (RelationTag) String

                                                                                                                                                                                                                                  func (t RelationTag) String() string

                                                                                                                                                                                                                                  type Set

                                                                                                                                                                                                                                  type Set map[Tag]bool

                                                                                                                                                                                                                                    Set represents the Set data structure, and contains Tags.

                                                                                                                                                                                                                                    func NewSet

                                                                                                                                                                                                                                    func NewSet(initial ...Tag) Set

                                                                                                                                                                                                                                      NewSet creates and initializes a Set and populates it with inital values as specified in the parameters.

                                                                                                                                                                                                                                      func NewSetFromStrings

                                                                                                                                                                                                                                      func NewSetFromStrings(initial ...string) (Set, error)

                                                                                                                                                                                                                                        NewSetFromStrings creates and initializes a Set and populates it by using names.ParseTag on the initial values specified in the parameters.

                                                                                                                                                                                                                                        func (Set) Add

                                                                                                                                                                                                                                        func (t Set) Add(value Tag)

                                                                                                                                                                                                                                          Add puts a value into the set.

                                                                                                                                                                                                                                          func (Set) Contains

                                                                                                                                                                                                                                          func (t Set) Contains(value Tag) bool

                                                                                                                                                                                                                                            Contains returns true if the value is in the set, and false otherwise.

                                                                                                                                                                                                                                            func (Set) Difference

                                                                                                                                                                                                                                            func (t Set) Difference(other Set) Set

                                                                                                                                                                                                                                              Difference returns a new Tags representing all the values in the target that are not in the parameter.

                                                                                                                                                                                                                                              func (Set) Intersection

                                                                                                                                                                                                                                              func (t Set) Intersection(other Set) Set

                                                                                                                                                                                                                                                Intersection returns a new Set representing a intersection of the elments in the method target and the parameter.

                                                                                                                                                                                                                                                func (Set) IsEmpty

                                                                                                                                                                                                                                                func (t Set) IsEmpty() bool

                                                                                                                                                                                                                                                  IsEmpty is true for empty or uninitialized sets.

                                                                                                                                                                                                                                                  func (Set) Remove

                                                                                                                                                                                                                                                  func (t Set) Remove(value Tag)

                                                                                                                                                                                                                                                    Remove takes a value out of the set. If value wasn't in the set to start with, this method silently succeeds.

                                                                                                                                                                                                                                                    func (Set) Size

                                                                                                                                                                                                                                                    func (t Set) Size() int

                                                                                                                                                                                                                                                      Size returns the number of elements in the set.

                                                                                                                                                                                                                                                      func (Set) SortedValues

                                                                                                                                                                                                                                                      func (t Set) SortedValues() []Tag

                                                                                                                                                                                                                                                        SortedValues returns an ordered slice containing all the values in the set.

                                                                                                                                                                                                                                                        func (Set) Union

                                                                                                                                                                                                                                                        func (t Set) Union(other Set) Set

                                                                                                                                                                                                                                                          Union returns a new Set representing a union of the elments in the method target and the parameter.

                                                                                                                                                                                                                                                          func (Set) Values

                                                                                                                                                                                                                                                          func (t Set) Values() []Tag

                                                                                                                                                                                                                                                            Values returns an unordered slice containing all the values in the set.

                                                                                                                                                                                                                                                            type SpaceTag

                                                                                                                                                                                                                                                            type SpaceTag struct {
                                                                                                                                                                                                                                                            	// contains filtered or unexported fields
                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                            func NewSpaceTag

                                                                                                                                                                                                                                                            func NewSpaceTag(name string) SpaceTag

                                                                                                                                                                                                                                                              NewSpaceTag returns the tag of a space with the given name.

                                                                                                                                                                                                                                                              func ParseSpaceTag

                                                                                                                                                                                                                                                              func ParseSpaceTag(spaceTag string) (SpaceTag, error)

                                                                                                                                                                                                                                                                ParseSpaceTag parses a space tag string.

                                                                                                                                                                                                                                                                func (SpaceTag) Id

                                                                                                                                                                                                                                                                func (t SpaceTag) Id() string

                                                                                                                                                                                                                                                                func (SpaceTag) Kind

                                                                                                                                                                                                                                                                func (t SpaceTag) Kind() string

                                                                                                                                                                                                                                                                func (SpaceTag) String

                                                                                                                                                                                                                                                                func (t SpaceTag) String() string

                                                                                                                                                                                                                                                                type StorageTag

                                                                                                                                                                                                                                                                type StorageTag struct {
                                                                                                                                                                                                                                                                	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                func NewStorageTag

                                                                                                                                                                                                                                                                func NewStorageTag(id string) StorageTag

                                                                                                                                                                                                                                                                  NewStorageTag returns the tag for the storage instance with the given ID. It will panic if the given string is not a valid storage instance Id.

                                                                                                                                                                                                                                                                  func ParseStorageTag

                                                                                                                                                                                                                                                                  func ParseStorageTag(s string) (StorageTag, error)

                                                                                                                                                                                                                                                                    ParseStorageTag parses a storage tag string.

                                                                                                                                                                                                                                                                    func (StorageTag) Id

                                                                                                                                                                                                                                                                    func (t StorageTag) Id() string

                                                                                                                                                                                                                                                                    func (StorageTag) Kind

                                                                                                                                                                                                                                                                    func (t StorageTag) Kind() string

                                                                                                                                                                                                                                                                    func (StorageTag) String

                                                                                                                                                                                                                                                                    func (t StorageTag) String() string

                                                                                                                                                                                                                                                                    type SubnetTag

                                                                                                                                                                                                                                                                    type SubnetTag struct {
                                                                                                                                                                                                                                                                    	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                    func NewSubnetTag

                                                                                                                                                                                                                                                                    func NewSubnetTag(id string) SubnetTag

                                                                                                                                                                                                                                                                      NewSubnetTag returns the tag for subnet with the given ID.

                                                                                                                                                                                                                                                                      func ParseSubnetTag

                                                                                                                                                                                                                                                                      func ParseSubnetTag(subnetTag string) (SubnetTag, error)

                                                                                                                                                                                                                                                                        ParseSubnetTag parses a subnet tag string.

                                                                                                                                                                                                                                                                        func (SubnetTag) Id

                                                                                                                                                                                                                                                                        func (t SubnetTag) Id() string

                                                                                                                                                                                                                                                                        func (SubnetTag) Kind

                                                                                                                                                                                                                                                                        func (t SubnetTag) Kind() string

                                                                                                                                                                                                                                                                        func (SubnetTag) String

                                                                                                                                                                                                                                                                        func (t SubnetTag) String() string

                                                                                                                                                                                                                                                                        type Tag

                                                                                                                                                                                                                                                                        type Tag interface {
                                                                                                                                                                                                                                                                        	// Kind returns the kind of the tag.
                                                                                                                                                                                                                                                                        	// This method is for legacy compatibility, callers should
                                                                                                                                                                                                                                                                        	// use equality or type assertions to verify the Kind, or type
                                                                                                                                                                                                                                                                        	// of a Tag.
                                                                                                                                                                                                                                                                        	Kind() string
                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                        	// Id returns an identifier for this Tag.
                                                                                                                                                                                                                                                                        	// The contents and format of the identifier are specific
                                                                                                                                                                                                                                                                        	// to the implementer of the Tag.
                                                                                                                                                                                                                                                                        	Id() string
                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                        	fmt.Stringer // all Tags should be able to print themselves
                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                          A Tag tags things that are taggable. Its purpose is to uniquely identify some resource and provide a consistent representation of that identity in both a human-readable and a machine-friendly format. The latter benefits use of the tag in over-the-wire transmission (e.g. in HTTP RPC calls) and in filename paths. The human-readable tag "name" is available through the Id method. The machine-friendly representation is provided by the String method.

                                                                                                                                                                                                                                                                          The ParseTag function may be used to build a tag from the machine- formatted string. As well each kind of tag has its own Parse* method. Each kind also has a New* method (e.g. NewMachineTag) which produces a tag from the human-readable tag "ID".

                                                                                                                                                                                                                                                                          In the context of juju, the API *must* use tags to represent the various juju entities. This contrasts with user-facing code, where tags *must not* be used. Internal to juju the use of tags is a judgement call based on the situation.

                                                                                                                                                                                                                                                                          func ActionReceiverFromTag

                                                                                                                                                                                                                                                                          func ActionReceiverFromTag(tag string) (Tag, error)

                                                                                                                                                                                                                                                                            ActionReceiverFrom Tag returns an ActionReceiver tag from a machine or unit tag.

                                                                                                                                                                                                                                                                            func ActionReceiverTag

                                                                                                                                                                                                                                                                            func ActionReceiverTag(name string) (Tag, error)

                                                                                                                                                                                                                                                                              ActionReceiverTag returns an ActionReceiver Tag from a machine or unit name.

                                                                                                                                                                                                                                                                              func ParseTag

                                                                                                                                                                                                                                                                              func ParseTag(tag string) (Tag, error)

                                                                                                                                                                                                                                                                                ParseTag parses a string representation into a Tag.

                                                                                                                                                                                                                                                                                Example
                                                                                                                                                                                                                                                                                Output:
                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                type UnitTag

                                                                                                                                                                                                                                                                                type UnitTag struct {
                                                                                                                                                                                                                                                                                	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                func FilesystemUnit

                                                                                                                                                                                                                                                                                func FilesystemUnit(tag FilesystemTag) (UnitTag, bool)

                                                                                                                                                                                                                                                                                  FilesystemUnit returns the unit component of the filesystem tag, and a boolean indicating whether or not there is a unit component.

                                                                                                                                                                                                                                                                                  func NewUnitTag

                                                                                                                                                                                                                                                                                  func NewUnitTag(unitName string) UnitTag

                                                                                                                                                                                                                                                                                    NewUnitTag returns the tag for the unit with the given name. It will panic if the given unit name is not valid.

                                                                                                                                                                                                                                                                                    func ParseUnitTag

                                                                                                                                                                                                                                                                                    func ParseUnitTag(unitTag string) (UnitTag, error)

                                                                                                                                                                                                                                                                                      ParseUnitTag parses a unit tag string.

                                                                                                                                                                                                                                                                                      func VolumeUnit

                                                                                                                                                                                                                                                                                      func VolumeUnit(tag VolumeTag) (UnitTag, bool)

                                                                                                                                                                                                                                                                                        VolumeUnit returns the unit component of the volume tag, and a boolean indicating whether or not there is a unit component.

                                                                                                                                                                                                                                                                                        func (UnitTag) Id

                                                                                                                                                                                                                                                                                        func (t UnitTag) Id() string

                                                                                                                                                                                                                                                                                        func (UnitTag) Kind

                                                                                                                                                                                                                                                                                        func (t UnitTag) Kind() string

                                                                                                                                                                                                                                                                                        func (UnitTag) Number

                                                                                                                                                                                                                                                                                        func (t UnitTag) Number() int

                                                                                                                                                                                                                                                                                          Number returns the unit number from the tag, effectively the NumberSnippet from the validUnit regular expression.

                                                                                                                                                                                                                                                                                          func (UnitTag) ShortenedString

                                                                                                                                                                                                                                                                                          func (t UnitTag) ShortenedString(maxLength int) (string, error)

                                                                                                                                                                                                                                                                                            ShortenedString returns the length-limited string for the tag. It can be used in places where there are strict length requirements, e.g. for a service name. It uses a hash so the resulting name should be unique. It will panic if maxLength is less than minShortenedLength.

                                                                                                                                                                                                                                                                                            func (UnitTag) String

                                                                                                                                                                                                                                                                                            func (t UnitTag) String() string

                                                                                                                                                                                                                                                                                            type UserTag

                                                                                                                                                                                                                                                                                            type UserTag struct {
                                                                                                                                                                                                                                                                                            	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                              UserTag represents a user that may be stored locally or associated with some external domain.

                                                                                                                                                                                                                                                                                              func NewLocalUserTag

                                                                                                                                                                                                                                                                                              func NewLocalUserTag(name string) UserTag

                                                                                                                                                                                                                                                                                                NewLocalUserTag returns the tag for a local user with the given name.

                                                                                                                                                                                                                                                                                                func NewUserTag

                                                                                                                                                                                                                                                                                                func NewUserTag(userName string) UserTag

                                                                                                                                                                                                                                                                                                  NewUserTag returns the tag for the user with the given name. It panics if the user name does not satisfy IsValidUser.

                                                                                                                                                                                                                                                                                                  func ParseUserTag

                                                                                                                                                                                                                                                                                                  func ParseUserTag(tag string) (UserTag, error)

                                                                                                                                                                                                                                                                                                    ParseUserTag parses a user tag string.

                                                                                                                                                                                                                                                                                                    func (UserTag) Domain

                                                                                                                                                                                                                                                                                                    func (t UserTag) Domain() string

                                                                                                                                                                                                                                                                                                      Domain returns the user domain. Users in the local database are from the LocalDomain. Other users are considered 'remote' users.

                                                                                                                                                                                                                                                                                                      func (UserTag) Id

                                                                                                                                                                                                                                                                                                      func (t UserTag) Id() string

                                                                                                                                                                                                                                                                                                        Id implements Tag.Id. Local users will always have an Id value without any domain.

                                                                                                                                                                                                                                                                                                        func (UserTag) IsLocal

                                                                                                                                                                                                                                                                                                        func (t UserTag) IsLocal() bool

                                                                                                                                                                                                                                                                                                          IsLocal returns true if the tag represents a local user. Users without an explicit domain are considered local.

                                                                                                                                                                                                                                                                                                          func (UserTag) Kind

                                                                                                                                                                                                                                                                                                          func (t UserTag) Kind() string

                                                                                                                                                                                                                                                                                                          func (UserTag) Name

                                                                                                                                                                                                                                                                                                          func (t UserTag) Name() string

                                                                                                                                                                                                                                                                                                            Name returns the name part of the user name without its associated domain.

                                                                                                                                                                                                                                                                                                            func (UserTag) String

                                                                                                                                                                                                                                                                                                            func (t UserTag) String() string

                                                                                                                                                                                                                                                                                                            func (UserTag) WithDomain

                                                                                                                                                                                                                                                                                                            func (t UserTag) WithDomain(domain string) UserTag

                                                                                                                                                                                                                                                                                                              WithDomain returns a copy of the user tag with the domain changed to the given argument. The domain must satisfy IsValidUserDomain or this function will panic.

                                                                                                                                                                                                                                                                                                              type VolumeTag

                                                                                                                                                                                                                                                                                                              type VolumeTag struct {
                                                                                                                                                                                                                                                                                                              	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                              func NewVolumeTag

                                                                                                                                                                                                                                                                                                              func NewVolumeTag(id string) VolumeTag

                                                                                                                                                                                                                                                                                                                NewVolumeTag returns the tag for the volume with the given ID. It will panic if the given volume ID is not valid.

                                                                                                                                                                                                                                                                                                                func ParseVolumeTag

                                                                                                                                                                                                                                                                                                                func ParseVolumeTag(volumeTag string) (VolumeTag, error)

                                                                                                                                                                                                                                                                                                                  ParseVolumeTag parses a volume tag string.

                                                                                                                                                                                                                                                                                                                  func (VolumeTag) Id

                                                                                                                                                                                                                                                                                                                  func (t VolumeTag) Id() string

                                                                                                                                                                                                                                                                                                                  func (VolumeTag) Kind

                                                                                                                                                                                                                                                                                                                  func (t VolumeTag) Kind() string

                                                                                                                                                                                                                                                                                                                  func (VolumeTag) String

                                                                                                                                                                                                                                                                                                                  func (t VolumeTag) String() string