Documentation

Index

Constants

View Source
const (
	// ActionCancelled is the status for an Action that has been
	// cancelled prior to execution.
	ActionCancelled string = "cancelled"

	// ActionCompleted is the status of an Action that has completed
	// successfully.
	ActionCompleted string = "completed"

	// ActionFailed is the status of an Action that has completed with
	// an error.
	ActionFailed string = "failed"

	// ActionPending is the status of an Action that has been queued up but
	// not executed yet.
	ActionPending string = "pending"

	// ActionRunning is the status of an Action that has been started but
	// not completed yet.
	ActionRunning string = "running"

	// ActionAborting is the status of an Action that is running but is to be
	// terminated. Identical to ActionRunning.
	ActionAborting string = "aborting"

	// ActionAborted is the status of an Action that was aborted.
	// Identical to ActionFailed and can have an error.
	ActionAborted string = "aborted"
)
View Source
const (
	CodeNotFound                  = "not found"
	CodeUserNotFound              = "user not found"
	CodeModelNotFound             = "model not found"
	CodeUnauthorized              = "unauthorized access"
	CodeLoginExpired              = "login expired"
	CodeNoCreds                   = "no credentials provided"
	CodeCannotEnterScope          = "cannot enter scope"
	CodeCannotEnterScopeYet       = "cannot enter scope yet"
	CodeExcessiveContention       = "excessive contention"
	CodeUnitHasSubordinates       = "unit has subordinates"
	CodeNotAssigned               = "not assigned"
	CodeStopped                   = "stopped"
	CodeDead                      = "dead"
	CodeHasAssignedUnits          = "machine has assigned units"
	CodeHasHostedModels           = "controller has hosted models"
	CodeHasPersistentStorage      = "controller/model has persistent storage"
	CodeModelNotEmpty             = "model not empty"
	CodeMachineHasAttachedStorage = "machine has attached storage"
	CodeMachineHasContainers      = "machine is hosting containers"
	CodeStorageAttached           = "storage is attached"
	CodeNotProvisioned            = "not provisioned"
	CodeNoAddressSet              = "no address set"
	CodeTryAgain                  = "try again"
	CodeNotImplemented            = "not implemented" // asserted to match rpc.codeNotImplemented in rpc/rpc_test.go
	CodeAlreadyExists             = "already exists"
	CodeUpgradeInProgress         = "upgrade in progress"
	CodeMigrationInProgress       = "model migration in progress"
	CodeIncompatibleClient        = "incompatible client"
	CodeActionNotAvailable        = "action no longer available"
	CodeOperationBlocked          = "operation is blocked"
	CodeLeadershipClaimDenied     = "leadership claim denied"
	CodeLeaseClaimDenied          = "lease claim denied"
	CodeNotSupported              = "not supported"
	CodeBadRequest                = "bad request"
	CodeMethodNotAllowed          = "method not allowed"
	CodeForbidden                 = "forbidden"
	CodeDischargeRequired         = "macaroon discharge required"
	CodeRedirect                  = "redirection required"
	CodeIncompatibleSeries        = "incompatible series"
	CodeCloudRegionRequired       = "cloud region required"
	CodeIncompatibleClouds        = "incompatible clouds"
	CodeQuotaLimitExceeded        = "quota limit exceeded"
)

    The Code constants hold error codes for some kinds of error.

    View Source
    const (
    	MachineNonceHeader = "X-Juju-Nonce"
    	JujuClientVersion  = "X-Juju-ClientVersion"
    )
    View Source
    const (
    	// DigestSHA is the HTTP digest algorithm value used in juju's HTTP code.
    	DigestSHA256 DigestAlgorithm = "SHA-256"
    
    	// ContentTypeJSON is the HTTP content-type value used for JSON content.
    	ContentTypeJSON = "application/json"
    
    	// ContentTypeRaw is the HTTP content-type value used for raw, unformattedcontent.
    	ContentTypeRaw = "application/octet-stream"
    
    	// ContentTypeJS is the HTTP content-type value used for javascript.
    	ContentTypeJS = "application/javascript"
    
    	// ContentTypeXJS is the outdated HTTP content-type value used for javascript.
    	ContentTypeXJS = "application/x-javascript"
    )
    View Source
    const MigrationModelHTTPHeader = "X-Juju-Migration-Model-UUID"

      MigrationModelHTTPHeader is the key for the HTTP header value that is used to specify the model UUID for the model being migrated for the uploading of the binaries for that model.

      Variables

      View Source
      var MigrationInProgressError = errors.New(CodeMigrationInProgress)

        MigrationInProgressError signifies a migration is in progress.

        View Source
        var UpgradeInProgressError = errors.New(CodeUpgradeInProgress)

          UpgradeInProgressError signifies an upgrade is in progress.

          Functions

          func EncodeChecksum

          func EncodeChecksum(checksum string) string

            EncodeChecksum base64 encodes a sha256 checksum according to RFC 4648 and returns a value that can be added to the "Digest" http header.

            func ErrCode

            func ErrCode(err error) string

              ErrCode returns the error code associated with the given error, or the empty string if there is none.

              func FromCharmOptionMap

              func FromCharmOptionMap(config map[string]CharmOption) *charm.Config

              func FromHostsPorts

              func FromHostsPorts(nhpm []network.HostPorts) [][]HostPort

                FromHostsPorts is a helper to create a parameter out of the network type, here for a nested slice of HostPort.

                func FromProviderHostsPorts

                func FromProviderHostsPorts(nhpm []network.ProviderHostPorts) [][]HostPort

                  FromProviderHostsPorts is a helper to create a parameter out of the network type, here for a nested slice of HostPort.

                  func InterfaceInfoFromNetworkConfig

                  func InterfaceInfoFromNetworkConfig(configs []NetworkConfig) network.InterfaceInfos

                    InterfaceInfoFromNetworkConfig converts a slice of NetworkConfig into the equivalent network.InterfaceInfo slice.

                    func IsBadRequest

                    func IsBadRequest(err error) bool

                    func IsCodeActionNotAvailable

                    func IsCodeActionNotAvailable(err error) bool

                    func IsCodeAlreadyExists

                    func IsCodeAlreadyExists(err error) bool

                    func IsCodeCannotEnterScope

                    func IsCodeCannotEnterScope(err error) bool

                    func IsCodeCannotEnterScopeYet

                    func IsCodeCannotEnterScopeYet(err error) bool

                    func IsCodeCloudRegionRequired

                    func IsCodeCloudRegionRequired(err error) bool

                    func IsCodeDead

                    func IsCodeDead(err error) bool

                    func IsCodeExcessiveContention

                    func IsCodeExcessiveContention(err error) bool

                    func IsCodeForbidden

                    func IsCodeForbidden(err error) bool

                    func IsCodeHasAssignedUnits

                    func IsCodeHasAssignedUnits(err error) bool

                    func IsCodeHasHostedModels

                    func IsCodeHasHostedModels(err error) bool

                    func IsCodeHasPersistentStorage

                    func IsCodeHasPersistentStorage(err error) bool

                    func IsCodeIncompatibleSeries

                    func IsCodeIncompatibleSeries(err error) bool

                    func IsCodeLeadershipClaimDenied

                    func IsCodeLeadershipClaimDenied(err error) bool

                    func IsCodeLeaseClaimDenied

                    func IsCodeLeaseClaimDenied(err error) bool

                    func IsCodeLoginExpired

                    func IsCodeLoginExpired(err error) bool

                    func IsCodeMachineHasAttachedStorage

                    func IsCodeMachineHasAttachedStorage(err error) bool

                    func IsCodeMachineHasContainers

                    func IsCodeMachineHasContainers(err error) bool

                    func IsCodeModelNotEmpty

                    func IsCodeModelNotEmpty(err error) bool

                    func IsCodeModelNotFound

                    func IsCodeModelNotFound(err error) bool

                    func IsCodeNoAddressSet

                    func IsCodeNoAddressSet(err error) bool

                    func IsCodeNoCreds

                    func IsCodeNoCreds(err error) bool

                    func IsCodeNotAssigned

                    func IsCodeNotAssigned(err error) bool

                    func IsCodeNotFound

                    func IsCodeNotFound(err error) bool

                    func IsCodeNotFoundOrCodeUnauthorized

                    func IsCodeNotFoundOrCodeUnauthorized(err error) bool

                      IsCodeNotFoundOrCodeUnauthorized is used in API clients which, pre-API, used errors.IsNotFound; this is because an API client is not necessarily privileged to know about the existence or otherwise of a particular entity, and the server may hence convert NotFound to Unauthorized at its discretion.

                      func IsCodeNotImplemented

                      func IsCodeNotImplemented(err error) bool

                      func IsCodeNotProvisioned

                      func IsCodeNotProvisioned(err error) bool

                      func IsCodeNotSupported

                      func IsCodeNotSupported(err error) bool

                      func IsCodeOperationBlocked

                      func IsCodeOperationBlocked(err error) bool

                      func IsCodeQuotaLimitExceeded

                      func IsCodeQuotaLimitExceeded(err error) bool

                        IsCodeQuotaLimitExceeded returns true if err includes a QuotaLimitExceeded error code.

                        func IsCodeStopped

                        func IsCodeStopped(err error) bool

                        func IsCodeStorageAttached

                        func IsCodeStorageAttached(err error) bool

                        func IsCodeTryAgain

                        func IsCodeTryAgain(err error) bool

                        func IsCodeUnauthorized

                        func IsCodeUnauthorized(err error) bool

                        func IsCodeUnitHasSubordinates

                        func IsCodeUnitHasSubordinates(err error) bool

                        func IsCodeUpgradeInProgress

                        func IsCodeUpgradeInProgress(err error) bool

                        func IsCodeUserNotFound

                        func IsCodeUserNotFound(err error) bool

                        func IsIncompatibleClientError

                        func IsIncompatibleClientError(err error) bool

                          IsIncompatibleClientError returns true if this err is a IncompatibleClientError.

                          func IsMethodNotAllowed

                          func IsMethodNotAllowed(err error) bool

                          func IsRedirect

                          func IsRedirect(err error) bool

                          func ToCharmOptionMap

                          func ToCharmOptionMap(config *charm.Config) map[string]CharmOption

                          func ToMachineHostPorts

                          func ToMachineHostPorts(hps []HostPort) network.MachineHostPorts

                            ToMachineHostPorts transforms multiple Addresses into a MachineHostPort collection.

                            func ToMachineHostsPorts

                            func ToMachineHostsPorts(hpm [][]HostPort) []network.MachineHostPorts

                              ToMachineHostsPorts transforms slices of HostPort grouped by server into a slice of MachineHostPorts collections.

                              func ToNetworkSpaceInfos

                              func ToNetworkSpaceInfos(allInfos SpaceInfos) network.SpaceInfos

                                ToNetworkSpaceInfos converts a serializable SpaceInfos payload into a network.SpaceInfos instance.

                                func ToProviderAddresses

                                func ToProviderAddresses(addrs ...Address) network.ProviderAddresses

                                  ToProviderAddresses transforms multiple Addresses into a ProviderAddresses collection.

                                  func ToProviderHostPorts

                                  func ToProviderHostPorts(hps []HostPort) network.ProviderHostPorts

                                    ToProviderHostPorts transforms multiple Addresses into a ProviderHostPorts collection.

                                    func ToProviderHostsPorts

                                    func ToProviderHostsPorts(hpm [][]HostPort) []network.ProviderHostPorts

                                      ToProviderHostsPorts transforms slices of HostPort grouped by server into a slice of ProviderHostPort collections.

                                      Types

                                      type APIHostPortsResult

                                      type APIHostPortsResult struct {
                                      	Servers [][]HostPort `json:"servers"`
                                      }

                                        APIHostPortsResult holds the result of an APIHostPorts call. Each element in the top level slice holds the addresses for one API server.

                                        func (APIHostPortsResult) MachineHostsPorts

                                        func (r APIHostPortsResult) MachineHostsPorts() []network.MachineHostPorts

                                          MachineHostPorts transforms the APIHostPortsResult into a slice of MachineHostPorts.

                                          type Action

                                          type Action struct {
                                          	Tag            string                 `json:"tag"`
                                          	Receiver       string                 `json:"receiver"`
                                          	Name           string                 `json:"name"`
                                          	Parameters     map[string]interface{} `json:"parameters,omitempty"`
                                          	Parallel       *bool                  `json:"parallel,omitempty"`
                                          	ExecutionGroup *string                `json:"execution-group,omitempty"`
                                          }

                                            Action describes an Action that will be or has been queued up.

                                            type ActionExecutionResult

                                            type ActionExecutionResult struct {
                                            	ActionTag string                 `json:"action-tag"`
                                            	Status    string                 `json:"status"`
                                            	Results   map[string]interface{} `json:"results,omitempty"`
                                            	Message   string                 `json:"message,omitempty"`
                                            }

                                              ActionExecutionResult holds the action tag and output used when recording the result of an action.

                                              type ActionExecutionResults

                                              type ActionExecutionResults struct {
                                              	Results []ActionExecutionResult `json:"results,omitempty"`
                                              }

                                                ActionExecutionResults holds a slice of ActionExecutionResult for a bulk action API call

                                                type ActionInfo

                                                type ActionInfo struct {
                                                	ModelUUID  string                 `json:"model-uuid"`
                                                	Id         string                 `json:"id"`
                                                	Receiver   string                 `json:"receiver"`
                                                	Name       string                 `json:"name"`
                                                	Parameters map[string]interface{} `json:"parameters,omitempty"`
                                                	Status     string                 `json:"status"`
                                                	Message    string                 `json:"message"`
                                                	Results    map[string]interface{} `json:"results,omitempty"`
                                                	Enqueued   time.Time              `json:"enqueued"`
                                                	Started    time.Time              `json:"started"`
                                                	Completed  time.Time              `json:"completed"`
                                                }

                                                  ActionInfo holds the information about a action that is tracked by multiwatcherStore.

                                                  func (*ActionInfo) EntityId

                                                  func (i *ActionInfo) EntityId() EntityId

                                                    EntityId returns a unique identifier for an action across models.

                                                    type ActionMessage

                                                    type ActionMessage struct {
                                                    	Timestamp time.Time `json:"timestamp"`
                                                    	Message   string    `json:"message"`
                                                    }

                                                      ActionMessage represents a logged message on an action.

                                                      type ActionMessageParams

                                                      type ActionMessageParams struct {
                                                      	Messages []EntityString `json:"messages"`
                                                      }

                                                        ActionMessageParams holds the arguments for logging progress messages for some actions.

                                                        type ActionPruneArgs

                                                        type ActionPruneArgs struct {
                                                        	MaxHistoryTime time.Duration `json:"max-history-time"`
                                                        	MaxHistoryMB   int           `json:"max-history-mb"`
                                                        }

                                                        type ActionResult

                                                        type ActionResult struct {
                                                        	Action    *Action                `json:"action,omitempty"`
                                                        	Enqueued  time.Time              `json:"enqueued,omitempty"`
                                                        	Started   time.Time              `json:"started,omitempty"`
                                                        	Completed time.Time              `json:"completed,omitempty"`
                                                        	Status    string                 `json:"status,omitempty"`
                                                        	Message   string                 `json:"message,omitempty"`
                                                        	Log       []ActionMessage        `json:"log,omitempty"`
                                                        	Output    map[string]interface{} `json:"output,omitempty"`
                                                        	Error     *Error                 `json:"error,omitempty"`
                                                        }

                                                          ActionResult describes an Action that will be or has been completed.

                                                          type ActionResults

                                                          type ActionResults struct {
                                                          	Results []ActionResult `json:"results,omitempty"`
                                                          }

                                                            ActionResults is a slice of ActionResult for bulk requests.

                                                            type ActionSpec

                                                            type ActionSpec struct {
                                                            	Description string                 `json:"description"`
                                                            	Params      map[string]interface{} `json:"params"`
                                                            }

                                                              ActionSpec is a definition of the parameters and traits of an Action. The Params map is expected to conform to JSON-Schema Draft 4 as defined at http://json-schema.org/draft-04/schema# (see http://json-schema.org/latest/json-schema-core.html)

                                                              type Actions

                                                              type Actions struct {
                                                              	Actions []Action `json:"actions,omitempty"`
                                                              }

                                                                Actions is a slice of Action for bulk requests.

                                                                type ActionsByReceiver

                                                                type ActionsByReceiver struct {
                                                                	Receiver string         `json:"receiver,omitempty"`
                                                                	Actions  []ActionResult `json:"actions,omitempty"`
                                                                	Error    *Error         `json:"error,omitempty"`
                                                                }

                                                                  ActionsByReceiver is a bulk API call wrapper containing Actions, either as input parameters or as results.

                                                                  type ActionsByReceivers

                                                                  type ActionsByReceivers struct {
                                                                  	Actions []ActionsByReceiver `json:"actions,omitempty"`
                                                                  }

                                                                    ActionsByReceivers wrap a slice of Actions for API calls.

                                                                    type ActionsQueryResult

                                                                    type ActionsQueryResult struct {
                                                                    	Receiver string       `json:"receiver,omitempty"`
                                                                    	Action   ActionResult `json:"action,omitempty"`
                                                                    	Error    *Error       `json:"error,omitempty"`
                                                                    }

                                                                      ActionsQueryResult holds the name and parameters of an query result.

                                                                      type ActionsQueryResults

                                                                      type ActionsQueryResults struct {
                                                                      	Results []ActionsQueryResult `json:"results,omitempty"`
                                                                      }

                                                                        ActionsQueryResults holds a slice of responses from the Actions query.

                                                                        type AddApplicationOffer

                                                                        type AddApplicationOffer struct {
                                                                        	ModelTag               string            `json:"model-tag"`
                                                                        	OfferName              string            `json:"offer-name"`
                                                                        	ApplicationName        string            `json:"application-name"`
                                                                        	ApplicationDescription string            `json:"application-description"`
                                                                        	Endpoints              map[string]string `json:"endpoints"`
                                                                        }

                                                                          AddApplicationOffer values are used to create an application offer.

                                                                          type AddApplicationOffers

                                                                          type AddApplicationOffers struct {
                                                                          	Offers []AddApplicationOffer
                                                                          }

                                                                            AddApplicationOffers is used when adding offers to an application directory.

                                                                            type AddApplicationUnits

                                                                            type AddApplicationUnits struct {
                                                                            	ApplicationName string                `json:"application"`
                                                                            	NumUnits        int                   `json:"num-units"`
                                                                            	Placement       []*instance.Placement `json:"placement"`
                                                                            	Policy          string                `json:"policy,omitempty"`
                                                                            	AttachStorage   []string              `json:"attach-storage,omitempty"`
                                                                            }

                                                                              AddApplicationUnits holds parameters for the AddUnits call.

                                                                              type AddApplicationUnitsResults

                                                                              type AddApplicationUnitsResults struct {
                                                                              	Units []string `json:"units"`
                                                                              }

                                                                                AddApplicationUnitsResults holds the names of the units added by the AddUnits call.

                                                                                type AddApplicationUnitsV5

                                                                                type AddApplicationUnitsV5 struct {
                                                                                	ApplicationName string                `json:"application"`
                                                                                	NumUnits        int                   `json:"num-units"`
                                                                                	Placement       []*instance.Placement `json:"placement"`
                                                                                	AttachStorage   []string              `json:"attach-storage,omitempty"`
                                                                                }

                                                                                  AddApplicationUnitsV5 holds parameters for the AddUnits call. V5 is missing the new policy arg.

                                                                                  type AddCharm

                                                                                  type AddCharm struct {
                                                                                  	URL     string `json:"url"`
                                                                                  	Channel string `json:"channel"`
                                                                                  	Force   bool   `json:"force"`
                                                                                  }

                                                                                    AddCharm holds the arguments for making an AddCharm API call.

                                                                                    type AddCharmWithAuth

                                                                                    type AddCharmWithAuth struct {
                                                                                    	URL                string             `json:"url"`
                                                                                    	Origin             CharmOrigin        `json:"charm-origin"`
                                                                                    	CharmStoreMacaroon *macaroon.Macaroon `json:"macaroon"`
                                                                                    	Force              bool               `json:"force"`
                                                                                    
                                                                                    	// Deprecated, series has moved into Origin and this should only be used
                                                                                    	// to talk to older controllers.
                                                                                    	Series string `json:"series"`
                                                                                    }

                                                                                      AddCharmWithAuth holds the arguments for making an AddCharmWithAuth API call via the Charms facade.

                                                                                      type AddCharmWithAuthorization

                                                                                      type AddCharmWithAuthorization struct {
                                                                                      	URL                string             `json:"url"`
                                                                                      	Channel            string             `json:"channel"`
                                                                                      	CharmStoreMacaroon *macaroon.Macaroon `json:"macaroon"`
                                                                                      	Force              bool               `json:"force"`
                                                                                      }

                                                                                        AddCharmWithAuthorization holds the arguments for making an AddCharmWithAuthorization API call.

                                                                                        type AddCharmWithOrigin

                                                                                        type AddCharmWithOrigin struct {
                                                                                        	URL    string      `json:"url"`
                                                                                        	Origin CharmOrigin `json:"charm-origin"`
                                                                                        	Force  bool        `json:"force"`
                                                                                        
                                                                                        	// Deprecated, series has moved into Origin and this should only be used
                                                                                        	// to talk to older controllers.
                                                                                        	Series string `json:"series"`
                                                                                        }

                                                                                          AddCharmWithOrigin holds the arguments for making an AddCharm API call via the Charms facade.

                                                                                          type AddCloudArgs

                                                                                          type AddCloudArgs struct {
                                                                                          	Cloud Cloud  `json:"cloud"`
                                                                                          	Name  string `json:"name"`
                                                                                          	Force *bool  `json:"force,omitempty"`
                                                                                          }

                                                                                            AddCloudArgs holds a cloud to be added with its name

                                                                                            type AddMachineParams

                                                                                            type AddMachineParams struct {
                                                                                            	// The following fields hold attributes that will be given to the
                                                                                            	// new machine when it is created.
                                                                                            	Series      string             `json:"series"`
                                                                                            	Constraints constraints.Value  `json:"constraints"`
                                                                                            	Jobs        []model.MachineJob `json:"jobs"`
                                                                                            
                                                                                            	// Disks describes constraints for disks that must be attached to
                                                                                            	// the machine when it is provisioned.
                                                                                            	Disks []storage.Constraints `json:"disks,omitempty"`
                                                                                            
                                                                                            	// If Placement is non-nil, it contains a placement directive
                                                                                            	// that will be used to decide how to instantiate the machine.
                                                                                            	Placement *instance.Placement `json:"placement,omitempty"`
                                                                                            
                                                                                            	// If ParentId is non-empty, it specifies the id of the
                                                                                            	// parent machine within which the new machine will
                                                                                            	// be created. In that case, ContainerType must also be
                                                                                            	// set.
                                                                                            	ParentId string `json:"parent-id"`
                                                                                            
                                                                                            	// ContainerType optionally gives the container type of the
                                                                                            	// new machine. If it is non-empty, the new machine
                                                                                            	// will be implemented by a container. If it is specified
                                                                                            	// but ParentId is empty, a new top level machine will
                                                                                            	// be created to hold the container with given series,
                                                                                            	// constraints and jobs.
                                                                                            	ContainerType instance.ContainerType `json:"container-type"`
                                                                                            
                                                                                            	// If InstanceId is non-empty, it will be associated with
                                                                                            	// the new machine along with the given nonce,
                                                                                            	// hardware characteristics and addresses.
                                                                                            	// All the following fields will be ignored if ContainerType
                                                                                            	// is set.
                                                                                            	InstanceId              instance.Id                      `json:"instance-id"`
                                                                                            	Nonce                   string                           `json:"nonce"`
                                                                                            	HardwareCharacteristics instance.HardwareCharacteristics `json:"hardware-characteristics"`
                                                                                            	Addrs                   []Address                        `json:"addresses"`
                                                                                            }

                                                                                              AddMachineParams encapsulates the parameters used to create a new machine.

                                                                                              type AddMachines

                                                                                              type AddMachines struct {
                                                                                              	MachineParams []AddMachineParams `json:"params"`
                                                                                              }

                                                                                                AddMachines holds the parameters for making the AddMachines call.

                                                                                                type AddMachinesResult

                                                                                                type AddMachinesResult struct {
                                                                                                	Machine string `json:"machine"`
                                                                                                	Error   *Error `json:"error,omitempty"`
                                                                                                }

                                                                                                  AddMachinesResult holds the name of a machine added by the api.client.AddMachine call for a single machine.

                                                                                                  type AddMachinesResults

                                                                                                  type AddMachinesResults struct {
                                                                                                  	Machines []AddMachinesResult `json:"machines"`
                                                                                                  }

                                                                                                    AddMachinesResults holds the results of an AddMachines call.

                                                                                                    type AddPendingResourcesArgs

                                                                                                    type AddPendingResourcesArgs struct {
                                                                                                    	Entity
                                                                                                    	AddCharmWithAuthorization
                                                                                                    
                                                                                                    	// Resources is the list of resources to add as pending.
                                                                                                    	Resources []CharmResource `json:"resources"`
                                                                                                    }

                                                                                                      AddPendingResourcesArgs holds the arguments to the AddPendingResources API endpoint.

                                                                                                      type AddPendingResourcesArgsV2

                                                                                                      type AddPendingResourcesArgsV2 struct {
                                                                                                      	Entity
                                                                                                      	URL                string             `json:"url"`
                                                                                                      	CharmOrigin        CharmOrigin        `json:"charm-origin"`
                                                                                                      	CharmStoreMacaroon *macaroon.Macaroon `json:"macaroon"`
                                                                                                      
                                                                                                      	// Resources is the list of resources to add as pending.
                                                                                                      	Resources []CharmResource `json:"resources"`
                                                                                                      }

                                                                                                        AddPendingResourcesArgsV2 holds the arguments to the AddPendingResources API endpoint.

                                                                                                        type AddPendingResourcesResult

                                                                                                        type AddPendingResourcesResult struct {
                                                                                                        	ErrorResult
                                                                                                        
                                                                                                        	// PendingIDs holds the "pending ID" for each of the requested
                                                                                                        	// resources.
                                                                                                        	PendingIDs []string `json:"pending-ids"`
                                                                                                        }

                                                                                                          AddPendingResourcesResult holds the result of the AddPendingResources API endpoint.

                                                                                                          type AddRelation

                                                                                                          type AddRelation struct {
                                                                                                          	Endpoints []string `json:"endpoints"`
                                                                                                          	ViaCIDRs  []string `json:"via-cidrs,omitempty"`
                                                                                                          }

                                                                                                            AddRelation holds the parameters for making the AddRelation call. The endpoints specified are unordered.

                                                                                                            type AddRelationResults

                                                                                                            type AddRelationResults struct {
                                                                                                            	Endpoints map[string]CharmRelation `json:"endpoints"`
                                                                                                            }

                                                                                                              AddRelationResults holds the results of a AddRelation call. The Endpoints field maps application names to the involved endpoints.

                                                                                                              type AddStorageDetails

                                                                                                              type AddStorageDetails struct {
                                                                                                              	// StorageTags contains the string representation of the storage tags
                                                                                                              	// of the added storage instances.
                                                                                                              	StorageTags []string `json:"storage-tags"`
                                                                                                              }

                                                                                                                AddStorageDetails contains the details of added storage.

                                                                                                                type AddStorageResult

                                                                                                                type AddStorageResult struct {
                                                                                                                	Result *AddStorageDetails `json:"result,omitempty"`
                                                                                                                	Error  *Error             `json:"error,omitempty"`
                                                                                                                }

                                                                                                                  AddStorageResult contains the result of adding storage to a unit.

                                                                                                                  type AddStorageResults

                                                                                                                  type AddStorageResults struct {
                                                                                                                  	Results []AddStorageResult `json:"results"`
                                                                                                                  }

                                                                                                                    AddStorageResults contains the results of adding storage to units.

                                                                                                                    type AddSubnetParams

                                                                                                                    type AddSubnetParams struct {
                                                                                                                    	CIDR              string   `json:"cidr,omitempty"`
                                                                                                                    	SubnetProviderId  string   `json:"subnet-provider-id,omitempty"`
                                                                                                                    	ProviderNetworkId string   `json:"provider-network-id,omitempty"`
                                                                                                                    	SpaceTag          string   `json:"space-tag"`
                                                                                                                    	VLANTag           int      `json:"vlan-tag,omitempty"`
                                                                                                                    	Zones             []string `json:"zones,omitempty"`
                                                                                                                    }

                                                                                                                      AddSubnetParams holds a cidr and space tags, subnet provider ID, and a list of zones to associate the subnet to. Either SubnetTag or SubnetProviderId must be set, but not both. Zones can be empty if they can be discovered

                                                                                                                      type AddSubnetParamsV2

                                                                                                                      type AddSubnetParamsV2 struct {
                                                                                                                      	SubnetTag         string   `json:"subnet-tag,omitempty"`
                                                                                                                      	SubnetProviderId  string   `json:"subnet-provider-id,omitempty"`
                                                                                                                      	ProviderNetworkId string   `json:"provider-network-id,omitempty"`
                                                                                                                      	SpaceTag          string   `json:"space-tag"`
                                                                                                                      	VLANTag           int      `json:"vlan-tag,omitempty"`
                                                                                                                      	Zones             []string `json:"zones,omitempty"`
                                                                                                                      }

                                                                                                                        AddSubnetParams holds a subnet and space tags, subnet provider ID, and a list of zones to associate the subnet to. Either SubnetTag or SubnetProviderId must be set, but not both. Zones can be empty if they can be discovered

                                                                                                                        type AddSubnetsParams

                                                                                                                        type AddSubnetsParams struct {
                                                                                                                        	Subnets []AddSubnetParams `json:"subnets"`
                                                                                                                        }

                                                                                                                          AddSubnetsParams holds the arguments of AddSubnets API call.

                                                                                                                          type AddSubnetsParamsV2

                                                                                                                          type AddSubnetsParamsV2 struct {
                                                                                                                          	Subnets []AddSubnetParamsV2 `json:"subnets"`
                                                                                                                          }

                                                                                                                            AddSubnetsParams holds the arguments of AddSubnets APIv2 call.

                                                                                                                            type AddUser

                                                                                                                            type AddUser struct {
                                                                                                                            	Username    string `json:"username"`
                                                                                                                            	DisplayName string `json:"display-name"`
                                                                                                                            
                                                                                                                            	// Password is optional. If it is empty, then
                                                                                                                            	// a secret key will be generated for the user
                                                                                                                            	// and returned in AddUserResult. It will not
                                                                                                                            	// be possible to login with a password until
                                                                                                                            	// registration with the secret key is completed.
                                                                                                                            	Password string `json:"password,omitempty"`
                                                                                                                            }

                                                                                                                              AddUser stores the parameters to add one user.

                                                                                                                              type AddUserResult

                                                                                                                              type AddUserResult struct {
                                                                                                                              	Tag       string `json:"tag,omitempty"`
                                                                                                                              	SecretKey []byte `json:"secret-key,omitempty"`
                                                                                                                              	Error     *Error `json:"error,omitempty"`
                                                                                                                              }

                                                                                                                                AddUserResult returns the tag of the newly created user and the secret key required to complete registration, or an error.

                                                                                                                                type AddUserResults

                                                                                                                                type AddUserResults struct {
                                                                                                                                	Results []AddUserResult `json:"results"`
                                                                                                                                }

                                                                                                                                  AddUserResults holds the results of the bulk AddUser API call.

                                                                                                                                  type AddUsers

                                                                                                                                  type AddUsers struct {
                                                                                                                                  	Users []AddUser `json:"users"`
                                                                                                                                  }

                                                                                                                                    AddUsers holds the parameters for adding new users.

                                                                                                                                    type Address

                                                                                                                                    type Address struct {
                                                                                                                                    	Value           string `json:"value"`
                                                                                                                                    	CIDR            string `json:"cidr,omitempty"`
                                                                                                                                    	Type            string `json:"type"`
                                                                                                                                    	Scope           string `json:"scope"`
                                                                                                                                    	SpaceName       string `json:"space-name,omitempty"`
                                                                                                                                    	ProviderSpaceID string `json:"space-id,omitempty"`
                                                                                                                                    	IsSecondary     bool   `json:"is-secondary,omitempty"`
                                                                                                                                    }

                                                                                                                                      Address represents the location of a machine, including metadata about what kind of location the address describes. See also the address types in core/network that this type can be transformed to/from. TODO (manadart 2021-03-05): CIDR is here to correct the old cardinality mismatch of having it on the parent NetworkConfig. Once we are liberated from backwards compatibility concerns (Juju 3/4), we should consider just ensuring that the Value field is in CIDR form. This way we can push any required parsing to a single location server-side instead of doing it for every implementation of environ.NetworkInterfaces plus on-machine detection. There are cases when we convert it *back* to the ip/mask form anyway.

                                                                                                                                      func FromMachineAddress

                                                                                                                                      func FromMachineAddress(addr network.MachineAddress) Address

                                                                                                                                        FromMachineAddress returns an Address for the input MachineAddress.

                                                                                                                                        func FromMachineAddresses

                                                                                                                                        func FromMachineAddresses(mAddrs ...network.MachineAddress) []Address

                                                                                                                                          FromMachineAddresses transforms multiple MachineAddresses into a slice of Address.

                                                                                                                                          func FromProviderAddress

                                                                                                                                          func FromProviderAddress(addr network.ProviderAddress) Address

                                                                                                                                            FromProviderAddress returns an Address for the input ProviderAddress.

                                                                                                                                            func FromProviderAddresses

                                                                                                                                            func FromProviderAddresses(pAddrs ...network.ProviderAddress) []Address

                                                                                                                                              FromProviderAddresses transforms multiple ProviderAddresses into a slice of Address.

                                                                                                                                              func (Address) MachineAddress

                                                                                                                                              func (addr Address) MachineAddress() network.MachineAddress

                                                                                                                                                MachineAddress transforms the Address to a MachineAddress, effectively ignoring the space fields.

                                                                                                                                                func (Address) ProviderAddress

                                                                                                                                                func (addr Address) ProviderAddress() network.ProviderAddress

                                                                                                                                                  ProviderAddress transforms the Address to a ProviderAddress.

                                                                                                                                                  type AdoptResourcesArgs

                                                                                                                                                  type AdoptResourcesArgs struct {
                                                                                                                                                  	// ModelTag identifies the model that owns the resources.
                                                                                                                                                  	ModelTag string `json:"model-tag"`
                                                                                                                                                  
                                                                                                                                                  	// SourceControllerVersion indicates the version of the calling
                                                                                                                                                  	// controller. This is needed in case the way the resources are
                                                                                                                                                  	// tagged has changed between versions - the provider should
                                                                                                                                                  	// ensure it looks for the original tags in the correct format for
                                                                                                                                                  	// that version.
                                                                                                                                                  	SourceControllerVersion version.Number `json:"source-controller-version"`
                                                                                                                                                  }

                                                                                                                                                    AdoptResourcesArgs holds the information required to ask the provider to update the controller tags for a model's resources.

                                                                                                                                                    type AgentGetEntitiesResult

                                                                                                                                                    type AgentGetEntitiesResult struct {
                                                                                                                                                    	Life          life.Value             `json:"life"`
                                                                                                                                                    	Jobs          []model.MachineJob     `json:"jobs"`
                                                                                                                                                    	ContainerType instance.ContainerType `json:"container-type"`
                                                                                                                                                    	Error         *Error                 `json:"error,omitempty"`
                                                                                                                                                    }

                                                                                                                                                      AgentGetEntitiesResult holds the results of a machineagent.API.GetEntities call for a single entity.

                                                                                                                                                      type AgentGetEntitiesResults

                                                                                                                                                      type AgentGetEntitiesResults struct {
                                                                                                                                                      	Entities []AgentGetEntitiesResult `json:"entities"`
                                                                                                                                                      }

                                                                                                                                                        AgentGetEntitiesResults holds the results of a agent.API.GetEntities call.

                                                                                                                                                        type AgentVersionResult

                                                                                                                                                        type AgentVersionResult struct {
                                                                                                                                                        	Version version.Number `json:"version"`
                                                                                                                                                        }

                                                                                                                                                          AgentVersionResult is used to return the current version number of the agent running the API server.

                                                                                                                                                          type AllWatcherId

                                                                                                                                                          type AllWatcherId struct {
                                                                                                                                                          	AllWatcherId string `json:"watcher-id"`
                                                                                                                                                          }

                                                                                                                                                            AllWatcherId holds the id of an AllWatcher.

                                                                                                                                                            type AllWatcherNextResults

                                                                                                                                                            type AllWatcherNextResults struct {
                                                                                                                                                            	Deltas []Delta `json:"deltas"`
                                                                                                                                                            }

                                                                                                                                                              AllWatcherNextResults holds deltas returned from calling AllWatcher.Next().

                                                                                                                                                              type AnnotationInfo

                                                                                                                                                              type AnnotationInfo struct {
                                                                                                                                                              	ModelUUID   string            `json:"model-uuid"`
                                                                                                                                                              	Tag         string            `json:"tag"`
                                                                                                                                                              	Annotations map[string]string `json:"annotations"`
                                                                                                                                                              }

                                                                                                                                                                AnnotationInfo holds the information about an annotation that is tracked by multiwatcherStore.

                                                                                                                                                                func (*AnnotationInfo) EntityId

                                                                                                                                                                func (i *AnnotationInfo) EntityId() EntityId

                                                                                                                                                                  EntityId returns a unique identifier for an annotation across models.

                                                                                                                                                                  type AnnotationsGetResult

                                                                                                                                                                  type AnnotationsGetResult struct {
                                                                                                                                                                  	EntityTag   string            `json:"entity"`
                                                                                                                                                                  	Annotations map[string]string `json:"annotations"`
                                                                                                                                                                  	Error       ErrorResult       `json:"error,omitempty"`
                                                                                                                                                                  }

                                                                                                                                                                    AnnotationsGetResult holds entity annotations or retrieval error.

                                                                                                                                                                    type AnnotationsGetResults

                                                                                                                                                                    type AnnotationsGetResults struct {
                                                                                                                                                                    	Results []AnnotationsGetResult `json:"results"`
                                                                                                                                                                    }

                                                                                                                                                                      AnnotationsGetResults holds annotations associated with entities.

                                                                                                                                                                      type AnnotationsSet

                                                                                                                                                                      type AnnotationsSet struct {
                                                                                                                                                                      	Annotations []EntityAnnotations `json:"annotations"`
                                                                                                                                                                      }

                                                                                                                                                                        AnnotationsSet stores parameters for making Set call on Annotations client.

                                                                                                                                                                        type ApplicationCharm

                                                                                                                                                                        type ApplicationCharm struct {
                                                                                                                                                                        	// URL holds the URL of the charm assigned to the
                                                                                                                                                                        	// application.
                                                                                                                                                                        	URL string `json:"url"`
                                                                                                                                                                        
                                                                                                                                                                        	// ForceUpgrade indicates whether or not application
                                                                                                                                                                        	// units should upgrade to the charm even if they
                                                                                                                                                                        	// are in an error state.
                                                                                                                                                                        	ForceUpgrade bool `json:"force-upgrade,omitempty"`
                                                                                                                                                                        
                                                                                                                                                                        	// SHA256 holds the SHA256 hash of the charm archive.
                                                                                                                                                                        	SHA256 string `json:"sha256"`
                                                                                                                                                                        
                                                                                                                                                                        	// CharmModifiedVersion increases when the charm changes in some way.
                                                                                                                                                                        	CharmModifiedVersion int `json:"charm-modified-version"`
                                                                                                                                                                        
                                                                                                                                                                        	// DeploymentMode is either "operator" or "workload"
                                                                                                                                                                        	DeploymentMode string `json:"deployment-mode,omitempty"`
                                                                                                                                                                        }

                                                                                                                                                                          ApplicationCharmInfo contains information about an application's charm.

                                                                                                                                                                          type ApplicationCharmActionsResult

                                                                                                                                                                          type ApplicationCharmActionsResult struct {
                                                                                                                                                                          	ApplicationTag string                `json:"application-tag,omitempty"`
                                                                                                                                                                          	Actions        map[string]ActionSpec `json:"actions,omitempty"`
                                                                                                                                                                          	Error          *Error                `json:"error,omitempty"`
                                                                                                                                                                          }

                                                                                                                                                                            ApplicationCharmActionsResult holds application name and charm.Actions for the application. If an error such as a missing charm or malformed application name occurs, it is encapsulated in this type.

                                                                                                                                                                            type ApplicationCharmPlacement

                                                                                                                                                                            type ApplicationCharmPlacement struct {
                                                                                                                                                                            	Application string `json:"application"`
                                                                                                                                                                            	CharmURL    string `json:"charm-url"`
                                                                                                                                                                            }

                                                                                                                                                                            type ApplicationCharmPlacements

                                                                                                                                                                            type ApplicationCharmPlacements struct {
                                                                                                                                                                            	Placements []ApplicationCharmPlacement `json:"placements"`
                                                                                                                                                                            }

                                                                                                                                                                            type ApplicationCharmRelations

                                                                                                                                                                            type ApplicationCharmRelations struct {
                                                                                                                                                                            	ApplicationName string `json:"application"`
                                                                                                                                                                            }

                                                                                                                                                                              ApplicationCharmRelations holds parameters for making the application CharmRelations call.

                                                                                                                                                                              type ApplicationCharmRelationsResults

                                                                                                                                                                              type ApplicationCharmRelationsResults struct {
                                                                                                                                                                              	CharmRelations []string `json:"charm-relations"`
                                                                                                                                                                              }

                                                                                                                                                                                ApplicationCharmRelationsResults holds the results of the application CharmRelations call.

                                                                                                                                                                                type ApplicationCharmResult

                                                                                                                                                                                type ApplicationCharmResult struct {
                                                                                                                                                                                	Result *ApplicationCharm `json:"result,omitempty"`
                                                                                                                                                                                	Error  *Error            `json:"error,omitempty"`
                                                                                                                                                                                }

                                                                                                                                                                                  ApplicationCharmResult contains an ApplicationCharm or an error.

                                                                                                                                                                                  type ApplicationCharmResults

                                                                                                                                                                                  type ApplicationCharmResults struct {
                                                                                                                                                                                  	Results []ApplicationCharmResult `json:"results"`
                                                                                                                                                                                  }

                                                                                                                                                                                    ApplicationCharmResults contains a set of ApplicationCharmResults.

                                                                                                                                                                                    type ApplicationConfigUnsetArgs

                                                                                                                                                                                    type ApplicationConfigUnsetArgs struct {
                                                                                                                                                                                    	Args []ApplicationUnset
                                                                                                                                                                                    }

                                                                                                                                                                                      ApplicationConfigUnsetArgs holds the parameters for resetting application config values for specified applications.

                                                                                                                                                                                      type ApplicationConstraint

                                                                                                                                                                                      type ApplicationConstraint struct {
                                                                                                                                                                                      	Constraints constraints.Value `json:"constraints"`
                                                                                                                                                                                      	Error       *Error            `json:"error,omitempty"`
                                                                                                                                                                                      }

                                                                                                                                                                                        ApplicationConstraint holds the constraints value for a single application, or an error for trying to get it.

                                                                                                                                                                                        type ApplicationDeploy

                                                                                                                                                                                        type ApplicationDeploy struct {
                                                                                                                                                                                        	ApplicationName  string                         `json:"application"`
                                                                                                                                                                                        	Series           string                         `json:"series"`
                                                                                                                                                                                        	CharmURL         string                         `json:"charm-url"`
                                                                                                                                                                                        	CharmOrigin      *CharmOrigin                   `json:"charm-origin,omitempty"`
                                                                                                                                                                                        	Channel          string                         `json:"channel"`
                                                                                                                                                                                        	NumUnits         int                            `json:"num-units"`
                                                                                                                                                                                        	Config           map[string]string              `json:"config,omitempty"` // Takes precedence over yaml entries if both are present.
                                                                                                                                                                                        	ConfigYAML       string                         `json:"config-yaml"`
                                                                                                                                                                                        	Constraints      constraints.Value              `json:"constraints"`
                                                                                                                                                                                        	Placement        []*instance.Placement          `json:"placement,omitempty"`
                                                                                                                                                                                        	Policy           string                         `json:"policy,omitempty"`
                                                                                                                                                                                        	Storage          map[string]storage.Constraints `json:"storage,omitempty"`
                                                                                                                                                                                        	Devices          map[string]devices.Constraints `json:"devices,omitempty"`
                                                                                                                                                                                        	AttachStorage    []string                       `json:"attach-storage,omitempty"`
                                                                                                                                                                                        	EndpointBindings map[string]string              `json:"endpoint-bindings,omitempty"`
                                                                                                                                                                                        	Resources        map[string]string              `json:"resources,omitempty"`
                                                                                                                                                                                        }

                                                                                                                                                                                          ApplicationDeploy holds the parameters for making the application Deploy call.

                                                                                                                                                                                          type ApplicationDestroy

                                                                                                                                                                                          type ApplicationDestroy struct {
                                                                                                                                                                                          	ApplicationName string `json:"application"`
                                                                                                                                                                                          }

                                                                                                                                                                                            ApplicationDestroy holds the parameters for making the deprecated Application.Destroy call.

                                                                                                                                                                                            type ApplicationExpose

                                                                                                                                                                                            type ApplicationExpose struct {
                                                                                                                                                                                            	ApplicationName string `json:"application"`
                                                                                                                                                                                            
                                                                                                                                                                                            	// Expose parameters grouped by endpoint name. An empty ("") endpoint
                                                                                                                                                                                            	// name key represents all application endpoints. For compatibility
                                                                                                                                                                                            	// with pre 2.9 clients, if this field is empty, all opened ports
                                                                                                                                                                                            	// for the application will be exposed to 0.0.0.0/0.
                                                                                                                                                                                            	ExposedEndpoints map[string]ExposedEndpoint `json:"exposed-endpoints,omitempty"`
                                                                                                                                                                                            }

                                                                                                                                                                                              ApplicationExpose holds the parameters for making the application Expose call.

                                                                                                                                                                                              type ApplicationGet

                                                                                                                                                                                              type ApplicationGet struct {
                                                                                                                                                                                              	ApplicationName string `json:"application"`
                                                                                                                                                                                              
                                                                                                                                                                                              	// BranchName identifies the "in-flight" branch that this
                                                                                                                                                                                              	// request will retrieve application data for.
                                                                                                                                                                                              	BranchName string `json:"branch"`
                                                                                                                                                                                              }

                                                                                                                                                                                                ApplicationGet holds parameters for making the singular Get or GetCharmURL calls, and bulk calls to CharmConfig in the V9 API.

                                                                                                                                                                                                type ApplicationGetArgs

                                                                                                                                                                                                type ApplicationGetArgs struct {
                                                                                                                                                                                                	Args []ApplicationGet `json:"args"`
                                                                                                                                                                                                }

                                                                                                                                                                                                  ApplicationGetArgs is used to request config for multiple application/generation pairs.

                                                                                                                                                                                                  type ApplicationGetConfigResults

                                                                                                                                                                                                  type ApplicationGetConfigResults struct {
                                                                                                                                                                                                  	Results []ConfigResult
                                                                                                                                                                                                  }

                                                                                                                                                                                                    ApplicationGetConfigResults holds the return values for application GetConfig.

                                                                                                                                                                                                    type ApplicationGetConstraintsResults

                                                                                                                                                                                                    type ApplicationGetConstraintsResults struct {
                                                                                                                                                                                                    	Results []ApplicationConstraint `json:"results"`
                                                                                                                                                                                                    }

                                                                                                                                                                                                      ApplicationGetConstraintsResults holds the multiple return values for GetConstraints call.

                                                                                                                                                                                                      type ApplicationGetResults

                                                                                                                                                                                                      type ApplicationGetResults struct {
                                                                                                                                                                                                      	Application       string                 `json:"application"`
                                                                                                                                                                                                      	Charm             string                 `json:"charm"`
                                                                                                                                                                                                      	CharmConfig       map[string]interface{} `json:"config"`
                                                                                                                                                                                                      	ApplicationConfig map[string]interface{} `json:"application-config,omitempty"`
                                                                                                                                                                                                      	Constraints       constraints.Value      `json:"constraints"`
                                                                                                                                                                                                      	Series            string                 `json:"series"`
                                                                                                                                                                                                      	Channel           string                 `json:"channel"`
                                                                                                                                                                                                      	EndpointBindings  map[string]string      `json:"endpoint-bindings,omitempty"`
                                                                                                                                                                                                      }

                                                                                                                                                                                                        ApplicationGetResults holds results of the application Get call.

                                                                                                                                                                                                        type ApplicationInfo

                                                                                                                                                                                                        type ApplicationInfo struct {
                                                                                                                                                                                                        	ModelUUID       string                 `json:"model-uuid"`
                                                                                                                                                                                                        	Name            string                 `json:"name"`
                                                                                                                                                                                                        	Exposed         bool                   `json:"exposed"`
                                                                                                                                                                                                        	CharmURL        string                 `json:"charm-url"`
                                                                                                                                                                                                        	OwnerTag        string                 `json:"owner-tag"`
                                                                                                                                                                                                        	Life            life.Value             `json:"life"`
                                                                                                                                                                                                        	MinUnits        int                    `json:"min-units"`
                                                                                                                                                                                                        	Constraints     constraints.Value      `json:"constraints"`
                                                                                                                                                                                                        	Config          map[string]interface{} `json:"config,omitempty"`
                                                                                                                                                                                                        	Subordinate     bool                   `json:"subordinate"`
                                                                                                                                                                                                        	Status          StatusInfo             `json:"status"`
                                                                                                                                                                                                        	WorkloadVersion string                 `json:"workload-version"`
                                                                                                                                                                                                        }

                                                                                                                                                                                                          ApplicationInfo holds the information about an application that is tracked by multiwatcherStore.

                                                                                                                                                                                                          func (*ApplicationInfo) EntityId

                                                                                                                                                                                                          func (i *ApplicationInfo) EntityId() EntityId

                                                                                                                                                                                                            EntityId returns a unique identifier for an application across models.

                                                                                                                                                                                                            type ApplicationInfoResult

                                                                                                                                                                                                            type ApplicationInfoResult struct {
                                                                                                                                                                                                            	Result *ApplicationResult `json:"result,omitempty"`
                                                                                                                                                                                                            	Error  *Error             `json:"error,omitempty"`
                                                                                                                                                                                                            }

                                                                                                                                                                                                              ApplicationInfoResults holds an application info result or a retrieval error.

                                                                                                                                                                                                              type ApplicationInfoResults

                                                                                                                                                                                                              type ApplicationInfoResults struct {
                                                                                                                                                                                                              	Results []ApplicationInfoResult `json:"results"`
                                                                                                                                                                                                              }

                                                                                                                                                                                                                ApplicationInfoResults holds applications associated with entities.

                                                                                                                                                                                                                type ApplicationMergeBindings

                                                                                                                                                                                                                type ApplicationMergeBindings struct {
                                                                                                                                                                                                                	ApplicationTag string            `json:"application-tag"`
                                                                                                                                                                                                                	Bindings       map[string]string `json:"bindings"`
                                                                                                                                                                                                                	Force          bool              `json:"force"`
                                                                                                                                                                                                                }

                                                                                                                                                                                                                  ApplicationMergeBindings holds a list of operator-defined bindings to be merged with the current application bindings.

                                                                                                                                                                                                                  type ApplicationMergeBindingsArgs

                                                                                                                                                                                                                  type ApplicationMergeBindingsArgs struct {
                                                                                                                                                                                                                  	Args []ApplicationMergeBindings `json:"args"`
                                                                                                                                                                                                                  }

                                                                                                                                                                                                                    ApplicationMergeBindingsArgs holds the parameters for updating application bindings.

                                                                                                                                                                                                                    type ApplicationMetricCredential

                                                                                                                                                                                                                    type ApplicationMetricCredential struct {
                                                                                                                                                                                                                    	ApplicationName   string `json:"application"`
                                                                                                                                                                                                                    	MetricCredentials []byte `json:"metrics-credentials"`
                                                                                                                                                                                                                    }

                                                                                                                                                                                                                      ApplicationMetricCredential holds parameters for the SetApplicationCredentials call.

                                                                                                                                                                                                                      type ApplicationMetricCredentials

                                                                                                                                                                                                                      type ApplicationMetricCredentials struct {
                                                                                                                                                                                                                      	Creds []ApplicationMetricCredential `json:"creds"`
                                                                                                                                                                                                                      }

                                                                                                                                                                                                                        ApplicationMetricCredentials holds multiple ApplicationMetricCredential parameters.

                                                                                                                                                                                                                        type ApplicationOfferAdminDetails

                                                                                                                                                                                                                        type ApplicationOfferAdminDetails struct {
                                                                                                                                                                                                                        	ApplicationOfferDetails
                                                                                                                                                                                                                        	ApplicationName string            `json:"application-name"`
                                                                                                                                                                                                                        	CharmURL        string            `json:"charm-url"`
                                                                                                                                                                                                                        	Connections     []OfferConnection `json:"connections,omitempty"`
                                                                                                                                                                                                                        }

                                                                                                                                                                                                                          ApplicationOfferAdminDetails represents an application offering, including details about how it has been deployed.

                                                                                                                                                                                                                          type ApplicationOfferDetails

                                                                                                                                                                                                                          type ApplicationOfferDetails struct {
                                                                                                                                                                                                                          	SourceModelTag         string             `json:"source-model-tag"`
                                                                                                                                                                                                                          	OfferUUID              string             `json:"offer-uuid"`
                                                                                                                                                                                                                          	OfferURL               string             `json:"offer-url"`
                                                                                                                                                                                                                          	OfferName              string             `json:"offer-name"`
                                                                                                                                                                                                                          	ApplicationDescription string             `json:"application-description"`
                                                                                                                                                                                                                          	Endpoints              []RemoteEndpoint   `json:"endpoints,omitempty"`
                                                                                                                                                                                                                          	Spaces                 []RemoteSpace      `json:"spaces,omitempty"`
                                                                                                                                                                                                                          	Bindings               map[string]string  `json:"bindings,omitempty"`
                                                                                                                                                                                                                          	Users                  []OfferUserDetails `json:"users,omitempty"`
                                                                                                                                                                                                                          }

                                                                                                                                                                                                                            ApplicationOfferDetails represents an application offering from an external model.

                                                                                                                                                                                                                            type ApplicationOfferInfo

                                                                                                                                                                                                                            type ApplicationOfferInfo struct {
                                                                                                                                                                                                                            	ModelUUID            string `json:"model-uuid"`
                                                                                                                                                                                                                            	OfferName            string `json:"offer-name"`
                                                                                                                                                                                                                            	OfferUUID            string `json:"offer-uuid"`
                                                                                                                                                                                                                            	ApplicationName      string `json:"application-name"`
                                                                                                                                                                                                                            	CharmName            string `json:"charm-name"`
                                                                                                                                                                                                                            	TotalConnectedCount  int    `json:"total-connected-count"`
                                                                                                                                                                                                                            	ActiveConnectedCount int    `json:"active-connected-count"`
                                                                                                                                                                                                                            }

                                                                                                                                                                                                                              ApplicationOfferInfo holds the information about an application offer that is tracked by multiwatcherStore.

                                                                                                                                                                                                                              func (*ApplicationOfferInfo) EntityId

                                                                                                                                                                                                                              func (i *ApplicationOfferInfo) EntityId() EntityId

                                                                                                                                                                                                                                EntityId returns a unique identifier for an application offer across models.

                                                                                                                                                                                                                                type ApplicationOfferResult

                                                                                                                                                                                                                                type ApplicationOfferResult struct {
                                                                                                                                                                                                                                	// Result contains application offer information.
                                                                                                                                                                                                                                	Result *ApplicationOfferAdminDetails `json:"result,omitempty"`
                                                                                                                                                                                                                                
                                                                                                                                                                                                                                	// Error contains related error.
                                                                                                                                                                                                                                	Error *Error `json:"error,omitempty"`
                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                  ApplicationOfferResult is a result of querying a remote application offer based on its URL.

                                                                                                                                                                                                                                  type ApplicationOfferStatus

                                                                                                                                                                                                                                  type ApplicationOfferStatus struct {
                                                                                                                                                                                                                                  	Err                  *Error                    `json:"err,omitempty"`
                                                                                                                                                                                                                                  	OfferName            string                    `json:"offer-name"`
                                                                                                                                                                                                                                  	ApplicationName      string                    `json:"application-name"`
                                                                                                                                                                                                                                  	CharmURL             string                    `json:"charm"`
                                                                                                                                                                                                                                  	Endpoints            map[string]RemoteEndpoint `json:"endpoints"`
                                                                                                                                                                                                                                  	ActiveConnectedCount int                       `json:"active-connected-count"`
                                                                                                                                                                                                                                  	TotalConnectedCount  int                       `json:"total-connected-count"`
                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                    ApplicationOfferStatus holds status info about an application offer.

                                                                                                                                                                                                                                    type ApplicationOffersResults

                                                                                                                                                                                                                                    type ApplicationOffersResults struct {
                                                                                                                                                                                                                                    	// Results contains collection of remote application results.
                                                                                                                                                                                                                                    	Results []ApplicationOfferResult `json:"results,omitempty"`
                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                      ApplicationOffersResults is a result of listing remote application offers.

                                                                                                                                                                                                                                      type ApplicationResult

                                                                                                                                                                                                                                      type ApplicationResult struct {
                                                                                                                                                                                                                                      	Tag              string                     `json:"tag"`
                                                                                                                                                                                                                                      	Charm            string                     `json:"charm,omitempty"`
                                                                                                                                                                                                                                      	Series           string                     `json:"series,omitempty"`
                                                                                                                                                                                                                                      	Channel          string                     `json:"channel,omitempty"`
                                                                                                                                                                                                                                      	Constraints      constraints.Value          `json:"constraints,omitempty"`
                                                                                                                                                                                                                                      	Principal        bool                       `json:"principal"`
                                                                                                                                                                                                                                      	Exposed          bool                       `json:"exposed"`
                                                                                                                                                                                                                                      	Remote           bool                       `json:"remote"`
                                                                                                                                                                                                                                      	EndpointBindings map[string]string          `json:"endpoint-bindings,omitempty"`
                                                                                                                                                                                                                                      	ExposedEndpoints map[string]ExposedEndpoint `json:"exposed-endpoints,omitempty"`
                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                        ApplicationResult holds an application info. NOTE: we should look to combine ApplicationResult and ApplicationInfo.

                                                                                                                                                                                                                                        type ApplicationSet

                                                                                                                                                                                                                                        type ApplicationSet struct {
                                                                                                                                                                                                                                        	ApplicationName string `json:"application"`
                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                        	// BranchName identifies the "in-flight" branch that this
                                                                                                                                                                                                                                        	// request will set configuration for.
                                                                                                                                                                                                                                        	BranchName string `json:"branch"`
                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                        	Options map[string]string `json:"options"`
                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                          ApplicationSet holds the parameters for an application Set command. Options contains the configuration data.

                                                                                                                                                                                                                                          type ApplicationSetCharm

                                                                                                                                                                                                                                          type ApplicationSetCharm struct {
                                                                                                                                                                                                                                          	// ApplicationName is the name of the application to set the charm on.
                                                                                                                                                                                                                                          	ApplicationName string `json:"application"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// Generation is the generation version that this
                                                                                                                                                                                                                                          	// request will set the application charm for.
                                                                                                                                                                                                                                          	Generation string `json:"generation"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// CharmURL is the new url for the charm.
                                                                                                                                                                                                                                          	CharmURL string `json:"charm-url"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// CharmOrigin is the charm origin
                                                                                                                                                                                                                                          	CharmOrigin *CharmOrigin `json:"charm-origin,omitempty"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// Channel is the charm store channel from which the charm came.
                                                                                                                                                                                                                                          	Channel string `json:"channel"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// ConfigSettings is the charm settings to set during the upgrade.
                                                                                                                                                                                                                                          	// This field is only understood by Application facade version 2
                                                                                                                                                                                                                                          	// and greater.
                                                                                                                                                                                                                                          	ConfigSettings map[string]string `json:"config-settings,omitempty"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// ConfigSettingsYAML is the charm settings in YAML format to set
                                                                                                                                                                                                                                          	// during the upgrade. If this is non-empty, it will take precedence
                                                                                                                                                                                                                                          	// over ConfigSettings. This field is only understood by Application
                                                                                                                                                                                                                                          	// facade version 2
                                                                                                                                                                                                                                          	ConfigSettingsYAML string `json:"config-settings-yaml,omitempty"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// Force forces the lxd profile validation overriding even if it's fails.
                                                                                                                                                                                                                                          	Force bool `json:"force"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// ForceUnits forces the upgrade on units in an error state.
                                                                                                                                                                                                                                          	ForceUnits bool `json:"force-units"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// ForceSeries forces the use of the charm even if it doesn't match the
                                                                                                                                                                                                                                          	// series of the unit.
                                                                                                                                                                                                                                          	ForceSeries bool `json:"force-series"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// ResourceIDs is a map of resource names to resource IDs to activate during
                                                                                                                                                                                                                                          	// the upgrade.
                                                                                                                                                                                                                                          	ResourceIDs map[string]string `json:"resource-ids,omitempty"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// StorageConstraints is a map of storage names to storage constraints to
                                                                                                                                                                                                                                          	// update during the upgrade. This field is only understood by Application
                                                                                                                                                                                                                                          	// facade version 2 and greater.
                                                                                                                                                                                                                                          	StorageConstraints map[string]StorageConstraints `json:"storage-constraints,omitempty"`
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          	// EndpointBindings is a map of operator-defined endpoint names to
                                                                                                                                                                                                                                          	// space names to be merged with any existing endpoint bindings. This
                                                                                                                                                                                                                                          	// field is only understood by Application facade version 10 and greater.
                                                                                                                                                                                                                                          	EndpointBindings map[string]string `json:"endpoint-bindings,omitempty"`
                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                            ApplicationSetCharm sets the charm for a given application.

                                                                                                                                                                                                                                            type ApplicationStatus

                                                                                                                                                                                                                                            type ApplicationStatus struct {
                                                                                                                                                                                                                                            	Err              *Error                     `json:"err,omitempty"`
                                                                                                                                                                                                                                            	Charm            string                     `json:"charm"`
                                                                                                                                                                                                                                            	CharmVersion     string                     `json:"charm-version"`
                                                                                                                                                                                                                                            	CharmProfile     string                     `json:"charm-profile"`
                                                                                                                                                                                                                                            	CharmChannel     string                     `json:"charm-channel,omitempty"`
                                                                                                                                                                                                                                            	Series           string                     `json:"series"`
                                                                                                                                                                                                                                            	Exposed          bool                       `json:"exposed"`
                                                                                                                                                                                                                                            	ExposedEndpoints map[string]ExposedEndpoint `json:"exposed-endpoints,omitempty"`
                                                                                                                                                                                                                                            	Life             life.Value                 `json:"life"`
                                                                                                                                                                                                                                            	Relations        map[string][]string        `json:"relations"`
                                                                                                                                                                                                                                            	CanUpgradeTo     string                     `json:"can-upgrade-to"`
                                                                                                                                                                                                                                            	SubordinateTo    []string                   `json:"subordinate-to"`
                                                                                                                                                                                                                                            	Units            map[string]UnitStatus      `json:"units"`
                                                                                                                                                                                                                                            	MeterStatuses    map[string]MeterStatus     `json:"meter-statuses"`
                                                                                                                                                                                                                                            	Status           DetailedStatus             `json:"status"`
                                                                                                                                                                                                                                            	WorkloadVersion  string                     `json:"workload-version"`
                                                                                                                                                                                                                                            	EndpointBindings map[string]string          `json:"endpoint-bindings"`
                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                            	// The following are for CAAS models.
                                                                                                                                                                                                                                            	Scale         int    `json:"int,omitempty"`
                                                                                                                                                                                                                                            	ProviderId    string `json:"provider-id,omitempty"`
                                                                                                                                                                                                                                            	PublicAddress string `json:"public-address"`
                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                              ApplicationStatus holds status info about an application.

                                                                                                                                                                                                                                              func (ApplicationStatus) MarshalJSON

                                                                                                                                                                                                                                              func (as ApplicationStatus) MarshalJSON() ([]byte, error)

                                                                                                                                                                                                                                                MarshalJSON marshals a status with a typo left in for compatibility. TODO(wallyworld) - remove in Juju 3

                                                                                                                                                                                                                                                type ApplicationStatusResult

                                                                                                                                                                                                                                                type ApplicationStatusResult struct {
                                                                                                                                                                                                                                                	Application StatusResult            `json:"application"`
                                                                                                                                                                                                                                                	Units       map[string]StatusResult `json:"units"`
                                                                                                                                                                                                                                                	Error       *Error                  `json:"error,omitempty"`
                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                  ApplicationStatusResult holds results for an application Full Status.

                                                                                                                                                                                                                                                  type ApplicationStatusResults

                                                                                                                                                                                                                                                  type ApplicationStatusResults struct {
                                                                                                                                                                                                                                                  	Results []ApplicationStatusResult `json:"results"`
                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                    ApplicationStatusResults holds multiple StatusResult.

                                                                                                                                                                                                                                                    type ApplicationUnexpose

                                                                                                                                                                                                                                                    type ApplicationUnexpose struct {
                                                                                                                                                                                                                                                    	ApplicationName string `json:"application"`
                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                    	// A list of endpoints to unexpose. If empty, the entire application
                                                                                                                                                                                                                                                    	// will be unexposed.
                                                                                                                                                                                                                                                    	ExposedEndpoints []string `json:"exposed-endpoints"`
                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                      ApplicationUnexpose holds parameters for the application Unexpose call.

                                                                                                                                                                                                                                                      type ApplicationUnitInfo

                                                                                                                                                                                                                                                      type ApplicationUnitInfo struct {
                                                                                                                                                                                                                                                      	ProviderId string `json:"provider-id"`
                                                                                                                                                                                                                                                      	UnitTag    string `json:"unit-tag"`
                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                        ApplicationUnitInfo holds info about the unit in the application.

                                                                                                                                                                                                                                                        type ApplicationUnitParams

                                                                                                                                                                                                                                                        type ApplicationUnitParams struct {
                                                                                                                                                                                                                                                        	ProviderId     string                     `json:"provider-id"`
                                                                                                                                                                                                                                                        	UnitTag        string                     `json:"unit-tag"`
                                                                                                                                                                                                                                                        	Address        string                     `json:"address"`
                                                                                                                                                                                                                                                        	Ports          []string                   `json:"ports"`
                                                                                                                                                                                                                                                        	Stateful       bool                       `json:"stateful,omitempty"`
                                                                                                                                                                                                                                                        	FilesystemInfo []KubernetesFilesystemInfo `json:"filesystem-info,omitempty"`
                                                                                                                                                                                                                                                        	Status         string                     `json:"status"`
                                                                                                                                                                                                                                                        	Info           string                     `json:"info"`
                                                                                                                                                                                                                                                        	Data           map[string]interface{}     `json:"data,omitempty"`
                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                          ApplicationUnitParams holds unit parameters used to update a unit.

                                                                                                                                                                                                                                                          type ApplicationUnset

                                                                                                                                                                                                                                                          type ApplicationUnset struct {
                                                                                                                                                                                                                                                          	ApplicationName string `json:"application"`
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          	// BranchName identifies the "in-flight" branch that this
                                                                                                                                                                                                                                                          	// request will unset configuration for.
                                                                                                                                                                                                                                                          	BranchName string `json:"branch"`
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          	Options []string `json:"options"`
                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                            ApplicationUnset holds the parameters for an application Unset command. Options contains the option attribute names to unset.

                                                                                                                                                                                                                                                            type ApplicationUpdate

                                                                                                                                                                                                                                                            type ApplicationUpdate struct {
                                                                                                                                                                                                                                                            	ApplicationName string             `json:"application"`
                                                                                                                                                                                                                                                            	CharmURL        string             `json:"charm-url"`
                                                                                                                                                                                                                                                            	ForceCharmURL   bool               `json:"force-charm-url"`
                                                                                                                                                                                                                                                            	ForceSeries     bool               `json:"force-series"`
                                                                                                                                                                                                                                                            	Force           bool               `json:"force"`
                                                                                                                                                                                                                                                            	MinUnits        *int               `json:"min-units,omitempty"`
                                                                                                                                                                                                                                                            	SettingsStrings map[string]string  `json:"settings,omitempty"` // Takes precedence over yaml entries if both are present.
                                                                                                                                                                                                                                                            	SettingsYAML    string             `json:"settings-yaml"`
                                                                                                                                                                                                                                                            	Constraints     *constraints.Value `json:"constraints,omitempty"`
                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                            	// Generation is the generation version in which this
                                                                                                                                                                                                                                                            	// request will update the application.
                                                                                                                                                                                                                                                            	Generation string `json:"generation"`
                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                              ApplicationUpdate holds the parameters for making the application Update call.

                                                                                                                                                                                                                                                              type ApplicationsCharmActionsResults

                                                                                                                                                                                                                                                              type ApplicationsCharmActionsResults struct {
                                                                                                                                                                                                                                                              	Results []ApplicationCharmActionsResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                ApplicationsCharmActionsResults holds a slice of ApplicationCharmActionsResult for a bulk result of charm Actions for Applications.

                                                                                                                                                                                                                                                                type ApplicationsDeploy

                                                                                                                                                                                                                                                                type ApplicationsDeploy struct {
                                                                                                                                                                                                                                                                	Applications []ApplicationDeploy `json:"applications"`
                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                  ApplicationsDeploy holds the parameters for deploying one or more applications.

                                                                                                                                                                                                                                                                  type AuthUserInfo

                                                                                                                                                                                                                                                                  type AuthUserInfo struct {
                                                                                                                                                                                                                                                                  	DisplayName    string     `json:"display-name"`
                                                                                                                                                                                                                                                                  	Identity       string     `json:"identity"`
                                                                                                                                                                                                                                                                  	LastConnection *time.Time `json:"last-connection,omitempty"`
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  	// Credentials contains an optional opaque credential value to be held by
                                                                                                                                                                                                                                                                  	// the client, if any.
                                                                                                                                                                                                                                                                  	Credentials *string `json:"credentials,omitempty"`
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  	// ControllerAccess holds the access the user has to the connected controller.
                                                                                                                                                                                                                                                                  	// It will be empty if the user has no access to the controller.
                                                                                                                                                                                                                                                                  	ControllerAccess string `json:"controller-access"`
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  	// ModelAccess holds the access the user has to the connected model.
                                                                                                                                                                                                                                                                  	ModelAccess string `json:"model-access"`
                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                    AuthUserInfo describes a logged-in local user or remote identity.

                                                                                                                                                                                                                                                                    type BackupsCreateArgs

                                                                                                                                                                                                                                                                    type BackupsCreateArgs struct {
                                                                                                                                                                                                                                                                    	Notes      string `json:"notes"`
                                                                                                                                                                                                                                                                    	KeepCopy   bool   `json:"keep-copy"`
                                                                                                                                                                                                                                                                    	NoDownload bool   `json:"no-download"`
                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                      BackupsCreateArgs holds the args for the API Create method.

                                                                                                                                                                                                                                                                      type BackupsDownloadArgs

                                                                                                                                                                                                                                                                      type BackupsDownloadArgs struct {
                                                                                                                                                                                                                                                                      	ID string `json:"id"`
                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                        BackupsDownloadArgs holds the args for the API Download method.

                                                                                                                                                                                                                                                                        type BackupsInfoArgs

                                                                                                                                                                                                                                                                        type BackupsInfoArgs struct {
                                                                                                                                                                                                                                                                        	ID string `json:"id"`
                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                          BackupsInfoArgs holds the args for the API Info method.

                                                                                                                                                                                                                                                                          type BackupsListArgs

                                                                                                                                                                                                                                                                          type BackupsListArgs struct {
                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                            BackupsListArgs holds the args for the API List method.

                                                                                                                                                                                                                                                                            type BackupsListResult

                                                                                                                                                                                                                                                                            type BackupsListResult struct {
                                                                                                                                                                                                                                                                            	List []BackupsMetadataResult `json:"list"`
                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                              BackupsListResult holds the list of all stored backups.

                                                                                                                                                                                                                                                                              type BackupsMetadataResult

                                                                                                                                                                                                                                                                              type BackupsMetadataResult struct {
                                                                                                                                                                                                                                                                              	ID string `json:"id"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	Checksum       string    `json:"checksum"`
                                                                                                                                                                                                                                                                              	ChecksumFormat string    `json:"checksum-format"`
                                                                                                                                                                                                                                                                              	Size           int64     `json:"size"`
                                                                                                                                                                                                                                                                              	Stored         time.Time `json:"stored"` // May be zero...
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	Started  time.Time      `json:"started"`
                                                                                                                                                                                                                                                                              	Finished time.Time      `json:"finished"` // May be zero...
                                                                                                                                                                                                                                                                              	Notes    string         `json:"notes"`
                                                                                                                                                                                                                                                                              	Model    string         `json:"model"`
                                                                                                                                                                                                                                                                              	Machine  string         `json:"machine"`
                                                                                                                                                                                                                                                                              	Hostname string         `json:"hostname"`
                                                                                                                                                                                                                                                                              	Version  version.Number `json:"version"`
                                                                                                                                                                                                                                                                              	Series   string         `json:"series"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	Filename string `json:"filename"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	// FormatVersion stores the version of the backup format.
                                                                                                                                                                                                                                                                              	// All unversioned backup files are considered 0,
                                                                                                                                                                                                                                                                              	// so the versioned formats start at 1.
                                                                                                                                                                                                                                                                              	FormatVersion int64 `json:"format-version"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	// ControllerUUID is the controller UUID that is backed up.
                                                                                                                                                                                                                                                                              	ControllerUUID string `json:"controller-uuid"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	// ControllerMachineID is the controller machine ID that the backup was created on.
                                                                                                                                                                                                                                                                              	ControllerMachineID string `json:"controller-machine-id"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	// ControllerMachineInstanceID is the controller machine cloud instance ID that the backup was created on.
                                                                                                                                                                                                                                                                              	ControllerMachineInstanceID string `json:"controller-machine-inst-id"`
                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                              	// HANodes reflects HA configuration: number of controller nodes in HA.
                                                                                                                                                                                                                                                                              	HANodes int64 `json:"ha-nodes"`
                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                BackupsMetadataResult holds the metadata for a backup as returned by an API backups method (such as Create).

                                                                                                                                                                                                                                                                                type BackupsRemoveArgs

                                                                                                                                                                                                                                                                                type BackupsRemoveArgs struct {
                                                                                                                                                                                                                                                                                	IDs []string `json:"ids"`
                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                  BackupsRemoveArgs holds the args for the API Remove method.

                                                                                                                                                                                                                                                                                  type BackupsUploadArgs

                                                                                                                                                                                                                                                                                  type BackupsUploadArgs struct {
                                                                                                                                                                                                                                                                                  	Data     []byte                `json:"data"`
                                                                                                                                                                                                                                                                                  	Metadata BackupsMetadataResult `json:"metadata"`
                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                    BackupsUploadArgs holds the args for the API Upload method.

                                                                                                                                                                                                                                                                                    type BackupsUploadResult

                                                                                                                                                                                                                                                                                    type BackupsUploadResult struct {
                                                                                                                                                                                                                                                                                    	ID string `json:"id"`
                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                      BackupsListResult holds the list of all stored backups.

                                                                                                                                                                                                                                                                                      type Block

                                                                                                                                                                                                                                                                                      type Block struct {
                                                                                                                                                                                                                                                                                      	// Id is this blocks id.
                                                                                                                                                                                                                                                                                      	Id string `json:"id"`
                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                      	// Tag holds the tag of the entity that is blocked.
                                                                                                                                                                                                                                                                                      	Tag string `json:"tag"`
                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                      	// Type is block type as per model.BlockType.
                                                                                                                                                                                                                                                                                      	// Valid types are "BlockDestroy", "BlockRemove" and "BlockChange".
                                                                                                                                                                                                                                                                                      	Type string `json:"type"`
                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                      	// Message is a descriptive or an explanatory message
                                                                                                                                                                                                                                                                                      	// that the block was created with.
                                                                                                                                                                                                                                                                                      	Message string `json:"message,omitempty"`
                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                        Block describes a Juju block that protects model from corruption.

                                                                                                                                                                                                                                                                                        type BlockDeviceResult

                                                                                                                                                                                                                                                                                        type BlockDeviceResult struct {
                                                                                                                                                                                                                                                                                        	Result storage.BlockDevice `json:"result"`
                                                                                                                                                                                                                                                                                        	Error  *Error              `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                          BlockDeviceResult holds the result of an API call to retrieve details of a block device.

                                                                                                                                                                                                                                                                                          type BlockDeviceResults

                                                                                                                                                                                                                                                                                          type BlockDeviceResults struct {
                                                                                                                                                                                                                                                                                          	Results []BlockDeviceResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                            BlockDeviceResults holds the result of an API call to retrieve details of multiple block devices.

                                                                                                                                                                                                                                                                                            type BlockDevicesResult

                                                                                                                                                                                                                                                                                            type BlockDevicesResult struct {
                                                                                                                                                                                                                                                                                            	Result []storage.BlockDevice `json:"result"`
                                                                                                                                                                                                                                                                                            	Error  *Error                `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                              BlockDevicesResult holds the result of an API call to retrieve details of all block devices relating to some entity.

                                                                                                                                                                                                                                                                                              type BlockDevicesResults

                                                                                                                                                                                                                                                                                              type BlockDevicesResults struct {
                                                                                                                                                                                                                                                                                              	Results []BlockDevicesResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                BlockDevicseResults holds the result of an API call to retrieve details of all block devices relating to some entities.

                                                                                                                                                                                                                                                                                                type BlockInfo

                                                                                                                                                                                                                                                                                                type BlockInfo struct {
                                                                                                                                                                                                                                                                                                	ModelUUID string          `json:"model-uuid"`
                                                                                                                                                                                                                                                                                                	Id        string          `json:"id"`
                                                                                                                                                                                                                                                                                                	Type      model.BlockType `json:"type"`
                                                                                                                                                                                                                                                                                                	Message   string          `json:"message"`
                                                                                                                                                                                                                                                                                                	Tag       string          `json:"tag"`
                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                  BlockInfo holds the information about a block that is tracked by multiwatcherStore.

                                                                                                                                                                                                                                                                                                  func (*BlockInfo) EntityId

                                                                                                                                                                                                                                                                                                  func (i *BlockInfo) EntityId() EntityId

                                                                                                                                                                                                                                                                                                    EntityId returns a unique identifier for a block across models.

                                                                                                                                                                                                                                                                                                    type BlockResult

                                                                                                                                                                                                                                                                                                    type BlockResult struct {
                                                                                                                                                                                                                                                                                                    	Result Block  `json:"result"`
                                                                                                                                                                                                                                                                                                    	Error  *Error `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                      BlockResult holds the result of an API call to retrieve details for a block.

                                                                                                                                                                                                                                                                                                      type BlockResults

                                                                                                                                                                                                                                                                                                      type BlockResults struct {
                                                                                                                                                                                                                                                                                                      	Results []BlockResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                        BlockResults holds the result of an API call to list blocks.

                                                                                                                                                                                                                                                                                                        type BlockSwitchParams

                                                                                                                                                                                                                                                                                                        type BlockSwitchParams struct {
                                                                                                                                                                                                                                                                                                        	// Type is block type as per model.BlockType.
                                                                                                                                                                                                                                                                                                        	// Valid types are "BlockDestroy", "BlockRemove" and "BlockChange".
                                                                                                                                                                                                                                                                                                        	Type string `json:"type"`
                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                        	// Message is a descriptive or an explanatory message
                                                                                                                                                                                                                                                                                                        	// that accompanies the switch.
                                                                                                                                                                                                                                                                                                        	Message string `json:"message,omitempty"`
                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                          BlockSwitchParams holds the parameters for switching a block on/off.

                                                                                                                                                                                                                                                                                                          type BoolResult

                                                                                                                                                                                                                                                                                                          type BoolResult struct {
                                                                                                                                                                                                                                                                                                          	Error  *Error `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                          	Result bool   `json:"result"`
                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                            BoolResult holds the result of an API call that returns a a boolean or an error.

                                                                                                                                                                                                                                                                                                            type BoolResults

                                                                                                                                                                                                                                                                                                            type BoolResults struct {
                                                                                                                                                                                                                                                                                                            	Results []BoolResult `json:"results"`
                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                              BoolResults holds multiple results with BoolResult each.

                                                                                                                                                                                                                                                                                                              type BranchArg

                                                                                                                                                                                                                                                                                                              type BranchArg struct {
                                                                                                                                                                                                                                                                                                              	BranchName string `json:"branch"`
                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                BranchArg represents an in-flight branch via its model and branch name.

                                                                                                                                                                                                                                                                                                                type BranchInfo

                                                                                                                                                                                                                                                                                                                type BranchInfo struct {
                                                                                                                                                                                                                                                                                                                	ModelUUID     string                  `json:"model-uuid"`
                                                                                                                                                                                                                                                                                                                	Id            string                  `json:"id"`
                                                                                                                                                                                                                                                                                                                	Name          string                  `json:"name"`
                                                                                                                                                                                                                                                                                                                	AssignedUnits map[string][]string     `json:"assigned-units"`
                                                                                                                                                                                                                                                                                                                	Config        map[string][]ItemChange `json:"charm-config"`
                                                                                                                                                                                                                                                                                                                	Created       int64                   `json:"created"`
                                                                                                                                                                                                                                                                                                                	CreatedBy     string                  `json:"created-by"`
                                                                                                                                                                                                                                                                                                                	Completed     int64                   `json:"completed"`
                                                                                                                                                                                                                                                                                                                	CompletedBy   string                  `json:"completed-by"`
                                                                                                                                                                                                                                                                                                                	GenerationId  int                     `json:"generation-id"`
                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                  BranchInfo holds data about a model generation (branch) that is tracked by multiwatcherStore.

                                                                                                                                                                                                                                                                                                                  func (*BranchInfo) EntityId

                                                                                                                                                                                                                                                                                                                  func (i *BranchInfo) EntityId() EntityId

                                                                                                                                                                                                                                                                                                                    EntityId returns a unique identifier for a generation.

                                                                                                                                                                                                                                                                                                                    type BranchInfoArgs

                                                                                                                                                                                                                                                                                                                    type BranchInfoArgs struct {
                                                                                                                                                                                                                                                                                                                    	// BranchNames is the names of branches for which info is being requested.
                                                                                                                                                                                                                                                                                                                    	BranchNames []string `json:"branches"`
                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                    	// Detailed indicates whether full unit tracking detail should returned,
                                                                                                                                                                                                                                                                                                                    	// or a summary.
                                                                                                                                                                                                                                                                                                                    	Detailed bool `json:"detailed"`
                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                      BranchInfoArgs transports arguments to the BranchInfo method

                                                                                                                                                                                                                                                                                                                      type BranchResults

                                                                                                                                                                                                                                                                                                                      type BranchResults struct {
                                                                                                                                                                                                                                                                                                                      	// Generations holds the details of the requested generations.
                                                                                                                                                                                                                                                                                                                      	Generations []Generation `json:"generations"`
                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                      	// Error holds the value of any error that occurred processing the request.
                                                                                                                                                                                                                                                                                                                      	Error *Error `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                        BranchResults transports a collection of generation details.

                                                                                                                                                                                                                                                                                                                        type BranchStatus

                                                                                                                                                                                                                                                                                                                        type BranchStatus struct {
                                                                                                                                                                                                                                                                                                                        	AssignedUnits map[string][]string `json:"assigned-units"`
                                                                                                                                                                                                                                                                                                                        	Created       int64               `json:"created"`
                                                                                                                                                                                                                                                                                                                        	CreatedBy     string              `json:"created-by"`
                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                          BranchStatus holds the results for an branch Full Status.

                                                                                                                                                                                                                                                                                                                          type BranchTrackArg

                                                                                                                                                                                                                                                                                                                          type BranchTrackArg struct {
                                                                                                                                                                                                                                                                                                                          	BranchName string   `json:"branch"`
                                                                                                                                                                                                                                                                                                                          	Entities   []Entity `json:"entities"`
                                                                                                                                                                                                                                                                                                                          	NumUnits   int      `json:"num-units,omitempty"`
                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                            BranchTrackArg identifies an in-flight branch and a collection of entities that should be set to track changes made under the branch.

                                                                                                                                                                                                                                                                                                                            type BulkImportStorageParams

                                                                                                                                                                                                                                                                                                                            type BulkImportStorageParams struct {
                                                                                                                                                                                                                                                                                                                            	Storage []ImportStorageParams `json:"storage"`
                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                              BulkImportStorageParams contains the parameters for importing a collection of storage entities.

                                                                                                                                                                                                                                                                                                                              type BundleChange

                                                                                                                                                                                                                                                                                                                              type BundleChange struct {
                                                                                                                                                                                                                                                                                                                              	// Id is the unique identifier for this change.
                                                                                                                                                                                                                                                                                                                              	Id string `json:"id"`
                                                                                                                                                                                                                                                                                                                              	// Method is the action to be performed to apply this change.
                                                                                                                                                                                                                                                                                                                              	Method string `json:"method"`
                                                                                                                                                                                                                                                                                                                              	// Args holds a list of arguments to pass to the method.
                                                                                                                                                                                                                                                                                                                              	Args []interface{} `json:"args"`
                                                                                                                                                                                                                                                                                                                              	// Requires holds a list of dependencies for this change. Each dependency
                                                                                                                                                                                                                                                                                                                              	// is represented by the corresponding change id, and must be applied
                                                                                                                                                                                                                                                                                                                              	// before this change is applied.
                                                                                                                                                                                                                                                                                                                              	Requires []string `json:"requires"`
                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                BundleChange holds a single change required to deploy a bundle.

                                                                                                                                                                                                                                                                                                                                type BundleChangesMapArgs

                                                                                                                                                                                                                                                                                                                                type BundleChangesMapArgs struct {
                                                                                                                                                                                                                                                                                                                                	// Id is the unique identifier for this change.
                                                                                                                                                                                                                                                                                                                                	Id string `json:"id"`
                                                                                                                                                                                                                                                                                                                                	// Method is the action to be performed to apply this change.
                                                                                                                                                                                                                                                                                                                                	Method string `json:"method"`
                                                                                                                                                                                                                                                                                                                                	// Args holds a list of arguments to pass to the method.
                                                                                                                                                                                                                                                                                                                                	Args map[string]interface{} `json:"args"`
                                                                                                                                                                                                                                                                                                                                	// Requires holds a list of dependencies for this change. Each dependency
                                                                                                                                                                                                                                                                                                                                	// is represented by the corresponding change id, and must be applied
                                                                                                                                                                                                                                                                                                                                	// before this change is applied.
                                                                                                                                                                                                                                                                                                                                	Requires []string `json:"requires"`
                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                  BundleChangesMapArgs holds a single change required to deploy a bundle. BundleChangesMapArgs has Args represented as a map of arguments rather than a series.

                                                                                                                                                                                                                                                                                                                                  type BundleChangesMapArgsResults

                                                                                                                                                                                                                                                                                                                                  type BundleChangesMapArgsResults struct {
                                                                                                                                                                                                                                                                                                                                  	// Changes holds the list of changes required to deploy the bundle.
                                                                                                                                                                                                                                                                                                                                  	// It is omitted if the provided bundle YAML has verification errors.
                                                                                                                                                                                                                                                                                                                                  	Changes []*BundleChangesMapArgs `json:"changes,omitempty"`
                                                                                                                                                                                                                                                                                                                                  	// Errors holds possible bundle verification errors.
                                                                                                                                                                                                                                                                                                                                  	Errors []string `json:"errors,omitempty"`
                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                    BundleChangesMapArgsResults holds results of the Bundle.GetChanges call.

                                                                                                                                                                                                                                                                                                                                    type BundleChangesParams

                                                                                                                                                                                                                                                                                                                                    type BundleChangesParams struct {
                                                                                                                                                                                                                                                                                                                                    	// BundleDataYAML is the YAML-encoded charm bundle data
                                                                                                                                                                                                                                                                                                                                    	// (see "github.com/juju/charm.BundleData").
                                                                                                                                                                                                                                                                                                                                    	BundleDataYAML string `json:"yaml"`
                                                                                                                                                                                                                                                                                                                                    	BundleURL      string `json:"bundleURL"`
                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                      BundleChangesParams holds parameters for making Bundle.GetChanges calls.

                                                                                                                                                                                                                                                                                                                                      type BundleChangesResults

                                                                                                                                                                                                                                                                                                                                      type BundleChangesResults struct {
                                                                                                                                                                                                                                                                                                                                      	// Changes holds the list of changes required to deploy the bundle.
                                                                                                                                                                                                                                                                                                                                      	// It is omitted if the provided bundle YAML has verification errors.
                                                                                                                                                                                                                                                                                                                                      	Changes []*BundleChange `json:"changes,omitempty"`
                                                                                                                                                                                                                                                                                                                                      	// Errors holds possible bundle verification errors.
                                                                                                                                                                                                                                                                                                                                      	Errors []string `json:"errors,omitempty"`
                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                        BundleChangesResults holds results of the Bundle.GetChanges call.

                                                                                                                                                                                                                                                                                                                                        type BundleCharm

                                                                                                                                                                                                                                                                                                                                        type BundleCharm struct {
                                                                                                                                                                                                                                                                                                                                        	Name      string `json:"name"`
                                                                                                                                                                                                                                                                                                                                        	PackageID string `json:"package-id"`
                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                        type BytesResult

                                                                                                                                                                                                                                                                                                                                        type BytesResult struct {
                                                                                                                                                                                                                                                                                                                                        	Result []byte `json:"result"`
                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                          BytesResult holds the result of an API call that returns a slice of bytes.

                                                                                                                                                                                                                                                                                                                                          type CAASApplicationGarbageCollectArg

                                                                                                                                                                                                                                                                                                                                          type CAASApplicationGarbageCollectArg struct {
                                                                                                                                                                                                                                                                                                                                          	Application     Entity   `json:"application"`
                                                                                                                                                                                                                                                                                                                                          	ObservedUnits   Entities `json:"observed-units"`
                                                                                                                                                                                                                                                                                                                                          	DesiredReplicas int      `json:"desired-replicas"`
                                                                                                                                                                                                                                                                                                                                          	ActivePodNames  []string `json:"active-pod-names"`
                                                                                                                                                                                                                                                                                                                                          	Force           bool     `json:"force"`
                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                            CAASApplicationGarbageCollectArg holds info needed to cleanup units that have gone away permanently.

                                                                                                                                                                                                                                                                                                                                            type CAASApplicationGarbageCollectArgs

                                                                                                                                                                                                                                                                                                                                            type CAASApplicationGarbageCollectArgs struct {
                                                                                                                                                                                                                                                                                                                                            	Args []CAASApplicationGarbageCollectArg `json:"args"`
                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                              CAASApplicationGarbageCollectArgs holds info needed to cleanup units that have gone away permanently.

                                                                                                                                                                                                                                                                                                                                              type CAASApplicationOCIResourceResult

                                                                                                                                                                                                                                                                                                                                              type CAASApplicationOCIResourceResult struct {
                                                                                                                                                                                                                                                                                                                                              	Result *CAASApplicationOCIResources `json:"result,omitempty"`
                                                                                                                                                                                                                                                                                                                                              	Error  *Error                       `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                CAASApplicationOCIResourceResult holds the image result or error for the queried application.

                                                                                                                                                                                                                                                                                                                                                type CAASApplicationOCIResourceResults

                                                                                                                                                                                                                                                                                                                                                type CAASApplicationOCIResourceResults struct {
                                                                                                                                                                                                                                                                                                                                                	Results []CAASApplicationOCIResourceResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                  CAASApplicationOCIResourceResults holds all the image results for queried applications.

                                                                                                                                                                                                                                                                                                                                                  type CAASApplicationOCIResources

                                                                                                                                                                                                                                                                                                                                                  type CAASApplicationOCIResources struct {
                                                                                                                                                                                                                                                                                                                                                  	Images map[string]DockerImageInfo `json:"images"`
                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                    CAASApplicationOCIResources holds a list of image OCI resources.

                                                                                                                                                                                                                                                                                                                                                    type CAASApplicationProvisioningInfo

                                                                                                                                                                                                                                                                                                                                                    type CAASApplicationProvisioningInfo struct {
                                                                                                                                                                                                                                                                                                                                                    	ImagePath            string                       `json:"image-path"`
                                                                                                                                                                                                                                                                                                                                                    	Version              version.Number               `json:"version"`
                                                                                                                                                                                                                                                                                                                                                    	APIAddresses         []string                     `json:"api-addresses"`
                                                                                                                                                                                                                                                                                                                                                    	CACert               string                       `json:"ca-cert"`
                                                                                                                                                                                                                                                                                                                                                    	Constraints          constraints.Value            `json:"constraints"`
                                                                                                                                                                                                                                                                                                                                                    	Tags                 map[string]string            `json:"tags,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	Filesystems          []KubernetesFilesystemParams `json:"filesystems,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	Volumes              []KubernetesVolumeParams     `json:"volumes,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	Devices              []KubernetesDeviceParams     `json:"devices,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	Series               string                       `json:"series,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	ImageRepo            string                       `json:"image-repo,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	CharmModifiedVersion int                          `json:"charm-modified-version,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	CharmURL             string                       `json:"charm-url,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    	Error                *Error                       `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                      CAASApplicationProvisioningInfo holds info needed to provision a caas application.

                                                                                                                                                                                                                                                                                                                                                      type CAASApplicationProvisioningInfoResults

                                                                                                                                                                                                                                                                                                                                                      type CAASApplicationProvisioningInfoResults struct {
                                                                                                                                                                                                                                                                                                                                                      	Results []CAASApplicationProvisioningInfo `json:"results"`
                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                        CAASApplicationProvisioningInfoResults holds OperatorProvisioningInfo results.

                                                                                                                                                                                                                                                                                                                                                        type CAASUnitIntroduction

                                                                                                                                                                                                                                                                                                                                                        type CAASUnitIntroduction struct {
                                                                                                                                                                                                                                                                                                                                                        	UnitName  string `json:"unit-name"`
                                                                                                                                                                                                                                                                                                                                                        	AgentConf []byte `json:"agent-conf"`
                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                          CAASUnitIntroduction contains the agent config for CAASApplication units.

                                                                                                                                                                                                                                                                                                                                                          type CAASUnitIntroductionArgs

                                                                                                                                                                                                                                                                                                                                                          type CAASUnitIntroductionArgs struct {
                                                                                                                                                                                                                                                                                                                                                          	PodName string `json:"pod-name"`
                                                                                                                                                                                                                                                                                                                                                          	PodUUID string `json:"pod-uuid"`
                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                            CAASUnitIntroductionArgs is used by embedded units to introduce themselves via CAASApplication facade.

                                                                                                                                                                                                                                                                                                                                                            type CAASUnitIntroductionResult

                                                                                                                                                                                                                                                                                                                                                            type CAASUnitIntroductionResult struct {
                                                                                                                                                                                                                                                                                                                                                            	Result *CAASUnitIntroduction `json:"result,omitempty"`
                                                                                                                                                                                                                                                                                                                                                            	Error  *Error                `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                              CAASUnitIntroductionResult is returned from CAASApplication facade.

                                                                                                                                                                                                                                                                                                                                                              type CIDRParams

                                                                                                                                                                                                                                                                                                                                                              type CIDRParams struct {
                                                                                                                                                                                                                                                                                                                                                              	CIDRS []string `json:"cidrs"`
                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                CIDRParams contains a slice of subnet CIDRs used for querying subnets.

                                                                                                                                                                                                                                                                                                                                                                type CLICommandStatus

                                                                                                                                                                                                                                                                                                                                                                type CLICommandStatus struct {
                                                                                                                                                                                                                                                                                                                                                                	Output []string `json:"output,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                	Done   bool     `json:"done,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                	Error  *Error   `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                  CLICommandStatus represents a status update for a CLI command.

                                                                                                                                                                                                                                                                                                                                                                  type CLICommands

                                                                                                                                                                                                                                                                                                                                                                  type CLICommands struct {
                                                                                                                                                                                                                                                                                                                                                                  	User        string           `json:"user"`
                                                                                                                                                                                                                                                                                                                                                                  	Credentials string           `json:"credentials,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                  	Macaroons   []macaroon.Slice `json:"macaroons,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                  	ActiveBranch string   `json:"active-branch,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                  	Commands     []string `json:"commands"`
                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                    CLICommands holds credentials, model and a list of CLI commands to run.

                                                                                                                                                                                                                                                                                                                                                                    type ChangeModelCredentialParams

                                                                                                                                                                                                                                                                                                                                                                    type ChangeModelCredentialParams struct {
                                                                                                                                                                                                                                                                                                                                                                    	// ModelTag is a tag for the model where cloud credential change takes place.
                                                                                                                                                                                                                                                                                                                                                                    	ModelTag string `json:"model-tag"`
                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                    	// CloudCredentialTag is the tag for the new cloud credential.
                                                                                                                                                                                                                                                                                                                                                                    	CloudCredentialTag string `json:"credential-tag"`
                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                      ChangeModelCredentialParams holds the argument to replace cloud credential used by a model.

                                                                                                                                                                                                                                                                                                                                                                      type ChangeModelCredentialsParams

                                                                                                                                                                                                                                                                                                                                                                      type ChangeModelCredentialsParams struct {
                                                                                                                                                                                                                                                                                                                                                                      	Models []ChangeModelCredentialParams `json:"model-credentials"`
                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                        ChangeModelCredentialsParams holds the arguments for changing cloud credentials on models.

                                                                                                                                                                                                                                                                                                                                                                        type Channel

                                                                                                                                                                                                                                                                                                                                                                        type Channel struct {
                                                                                                                                                                                                                                                                                                                                                                        	ReleasedAt string     `json:"released-at"`
                                                                                                                                                                                                                                                                                                                                                                        	Track      string     `json:"track"`
                                                                                                                                                                                                                                                                                                                                                                        	Risk       string     `json:"risk"`
                                                                                                                                                                                                                                                                                                                                                                        	Revision   int        `json:"revision"`
                                                                                                                                                                                                                                                                                                                                                                        	Size       int        `json:"size"`
                                                                                                                                                                                                                                                                                                                                                                        	Version    string     `json:"version"`
                                                                                                                                                                                                                                                                                                                                                                        	Platforms  []Platform `json:"platforms"`
                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                        type Charm

                                                                                                                                                                                                                                                                                                                                                                        type Charm struct {
                                                                                                                                                                                                                                                                                                                                                                        	Revision   int                    `json:"revision"`
                                                                                                                                                                                                                                                                                                                                                                        	URL        string                 `json:"url"`
                                                                                                                                                                                                                                                                                                                                                                        	Config     map[string]CharmOption `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                        	Meta       *CharmMeta             `json:"meta,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                        	Actions    *CharmActions          `json:"actions,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                        	Metrics    *CharmMetrics          `json:"metrics,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                        	Manifest   *CharmManifest         `json:"manifest,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                        	LXDProfile *CharmLXDProfile       `json:"lxd-profile,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                          Charm holds all the charm data that the client needs. To be honest, it probably returns way more than what is actually needed.

                                                                                                                                                                                                                                                                                                                                                                          type CharmActionSpec

                                                                                                                                                                                                                                                                                                                                                                          type CharmActionSpec struct {
                                                                                                                                                                                                                                                                                                                                                                          	Description string                 `json:"description"`
                                                                                                                                                                                                                                                                                                                                                                          	Params      map[string]interface{} `json:"params"`
                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                            CharmActionSpec mirrors charm.ActionSpec.

                                                                                                                                                                                                                                                                                                                                                                            type CharmActions

                                                                                                                                                                                                                                                                                                                                                                            type CharmActions struct {
                                                                                                                                                                                                                                                                                                                                                                            	ActionSpecs map[string]CharmActionSpec `json:"specs,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                              CharmActions mirrors charm.Actions.

                                                                                                                                                                                                                                                                                                                                                                              type CharmBase

                                                                                                                                                                                                                                                                                                                                                                              type CharmBase struct {
                                                                                                                                                                                                                                                                                                                                                                              	Name          string   `json:"name,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                              	Channel       string   `json:"channel,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                              	Architectures []string `json:"architectures,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                CharmBase mirrors charm.Base

                                                                                                                                                                                                                                                                                                                                                                                type CharmContainer

                                                                                                                                                                                                                                                                                                                                                                                type CharmContainer struct {
                                                                                                                                                                                                                                                                                                                                                                                	Resource string       `json:"resource,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                	Mounts   []CharmMount `json:"mounts,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                  CharmContainer mirrors charm.Container

                                                                                                                                                                                                                                                                                                                                                                                  type CharmDeployment

                                                                                                                                                                                                                                                                                                                                                                                  type CharmDeployment struct {
                                                                                                                                                                                                                                                                                                                                                                                  	DeploymentType string `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                  	DeploymentMode string `json:"mode"`
                                                                                                                                                                                                                                                                                                                                                                                  	ServiceType    string `json:"service"`
                                                                                                                                                                                                                                                                                                                                                                                  	MinVersion     string `json:"min-version"`
                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                    CharmDeployment mirrors charm.Deployment.

                                                                                                                                                                                                                                                                                                                                                                                    type CharmDevice

                                                                                                                                                                                                                                                                                                                                                                                    type CharmDevice struct {
                                                                                                                                                                                                                                                                                                                                                                                    	Name        string `bson:"name"`
                                                                                                                                                                                                                                                                                                                                                                                    	Description string `bson:"description"`
                                                                                                                                                                                                                                                                                                                                                                                    	Type        string `bson:"type"`
                                                                                                                                                                                                                                                                                                                                                                                    	CountMin    int64  `bson:"count-min"`
                                                                                                                                                                                                                                                                                                                                                                                    	CountMax    int64  `bson:"count-max"`
                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                      CharmDevice mirrors charm.Device.

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubBundle

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubBundle struct {
                                                                                                                                                                                                                                                                                                                                                                                      	Charms []BundleCharm `json:"charms,"`
                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubCharm

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubCharm struct {
                                                                                                                                                                                                                                                                                                                                                                                      	Config      map[string]CharmOption       `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                      	Relations   map[string]map[string]string `json:"relations"`
                                                                                                                                                                                                                                                                                                                                                                                      	Subordinate bool                         `json:"subordinate"`
                                                                                                                                                                                                                                                                                                                                                                                      	UsedBy      []string                     `json:"used-by"` // bundles which use the charm
                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubEntityFindResult

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubEntityFindResult struct {
                                                                                                                                                                                                                                                                                                                                                                                      	Results []FindResponse `json:"result"`
                                                                                                                                                                                                                                                                                                                                                                                      	Errors  ErrorResponse  `json:"errors"`
                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubEntityInfoResult

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubEntityInfoResult struct {
                                                                                                                                                                                                                                                                                                                                                                                      	Result InfoResponse  `json:"result"`
                                                                                                                                                                                                                                                                                                                                                                                      	Errors ErrorResponse `json:"errors"`
                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubError

                                                                                                                                                                                                                                                                                                                                                                                      type CharmHubError struct {
                                                                                                                                                                                                                                                                                                                                                                                      	Code    string `json:"code"`
                                                                                                                                                                                                                                                                                                                                                                                      	Message string `json:"message"`
                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                      type CharmInfo

                                                                                                                                                                                                                                                                                                                                                                                      type CharmInfo struct {
                                                                                                                                                                                                                                                                                                                                                                                      	ModelUUID    string     `json:"model-uuid"`
                                                                                                                                                                                                                                                                                                                                                                                      	CharmURL     string     `json:"charm-url"`
                                                                                                                                                                                                                                                                                                                                                                                      	CharmVersion string     `json:"charm-version"`
                                                                                                                                                                                                                                                                                                                                                                                      	Life         life.Value `json:"life"`
                                                                                                                                                                                                                                                                                                                                                                                      	LXDProfile   *Profile   `json:"profile"`
                                                                                                                                                                                                                                                                                                                                                                                      	// DefaultConfig is derived from state-stored *charm.Config.
                                                                                                                                                                                                                                                                                                                                                                                      	DefaultConfig map[string]interface{} `json:"config,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                        CharmInfo holds the information about a charm that is tracked by the multiwatcher.

                                                                                                                                                                                                                                                                                                                                                                                        func (*CharmInfo) EntityId

                                                                                                                                                                                                                                                                                                                                                                                        func (i *CharmInfo) EntityId() EntityId

                                                                                                                                                                                                                                                                                                                                                                                          EntityId returns a unique identifier for an charm across models.

                                                                                                                                                                                                                                                                                                                                                                                          type CharmLXDProfile

                                                                                                                                                                                                                                                                                                                                                                                          type CharmLXDProfile struct {
                                                                                                                                                                                                                                                                                                                                                                                          	Config      map[string]string            `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                          	Description string                       `json:"description"`
                                                                                                                                                                                                                                                                                                                                                                                          	Devices     map[string]map[string]string `json:"devices"`
                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                            CharmLXDProfile mirrors charm.LXDProfile

                                                                                                                                                                                                                                                                                                                                                                                            type CharmLXDProfileResult

                                                                                                                                                                                                                                                                                                                                                                                            type CharmLXDProfileResult struct {
                                                                                                                                                                                                                                                                                                                                                                                            	LXDProfile *CharmLXDProfile `json:"lxd-profile"`
                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                              CharmLXDProfileResult returns the result of finding the CharmLXDProfile

                                                                                                                                                                                                                                                                                                                                                                                              type CharmManifest

                                                                                                                                                                                                                                                                                                                                                                                              type CharmManifest struct {
                                                                                                                                                                                                                                                                                                                                                                                              	Bases []CharmBase `json:"bases,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                CharmManifest mirrors charm.Manifest

                                                                                                                                                                                                                                                                                                                                                                                                type CharmMeta

                                                                                                                                                                                                                                                                                                                                                                                                type CharmMeta struct {
                                                                                                                                                                                                                                                                                                                                                                                                	Name           string                       `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                	Summary        string                       `json:"summary"`
                                                                                                                                                                                                                                                                                                                                                                                                	Description    string                       `json:"description"`
                                                                                                                                                                                                                                                                                                                                                                                                	Subordinate    bool                         `json:"subordinate"`
                                                                                                                                                                                                                                                                                                                                                                                                	Provides       map[string]CharmRelation     `json:"provides,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Requires       map[string]CharmRelation     `json:"requires,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Peers          map[string]CharmRelation     `json:"peers,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	ExtraBindings  map[string]string            `json:"extra-bindings,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Categories     []string                     `json:"categories,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Tags           []string                     `json:"tags,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Series         []string                     `json:"series,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Storage        map[string]CharmStorage      `json:"storage,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Devices        map[string]CharmDevice       `json:"devices,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Deployment     *CharmDeployment             `json:"deployment,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	PayloadClasses map[string]CharmPayloadClass `json:"payload-classes,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Resources      map[string]CharmResourceMeta `json:"resources,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Terms          []string                     `json:"terms,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	MinJujuVersion string                       `json:"min-juju-version,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                	Containers map[string]CharmContainer `json:"containers,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                	Assumes    []string                  `json:"assumes,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                  CharmMeta mirrors charm.Meta.

                                                                                                                                                                                                                                                                                                                                                                                                  type CharmMetric

                                                                                                                                                                                                                                                                                                                                                                                                  type CharmMetric struct {
                                                                                                                                                                                                                                                                                                                                                                                                  	Type        string `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                  	Description string `json:"description"`
                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                    CharmMetric mirrors charm.Metric.

                                                                                                                                                                                                                                                                                                                                                                                                    type CharmMetrics

                                                                                                                                                                                                                                                                                                                                                                                                    type CharmMetrics struct {
                                                                                                                                                                                                                                                                                                                                                                                                    	Metrics map[string]CharmMetric `json:"metrics"`
                                                                                                                                                                                                                                                                                                                                                                                                    	Plan    CharmPlan              `json:"plan"`
                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                      CharmMetrics mirrors charm.Metrics.

                                                                                                                                                                                                                                                                                                                                                                                                      type CharmMount

                                                                                                                                                                                                                                                                                                                                                                                                      type CharmMount struct {
                                                                                                                                                                                                                                                                                                                                                                                                      	Storage  string `json:"storage,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                      	Location string `json:"location,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                        CharmMount mirrors charm.Mount

                                                                                                                                                                                                                                                                                                                                                                                                        type CharmOption

                                                                                                                                                                                                                                                                                                                                                                                                        type CharmOption struct {
                                                                                                                                                                                                                                                                                                                                                                                                        	Type        string      `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                        	Description string      `json:"description,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                        	Default     interface{} `json:"default,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                          CharmOption mirrors charm.Option

                                                                                                                                                                                                                                                                                                                                                                                                          type CharmOrigin

                                                                                                                                                                                                                                                                                                                                                                                                          type CharmOrigin struct {
                                                                                                                                                                                                                                                                                                                                                                                                          	// Source is where the charm came from, Local, CharmStore or CharmHub.
                                                                                                                                                                                                                                                                                                                                                                                                          	Source string `json:"source"`
                                                                                                                                                                                                                                                                                                                                                                                                          	Type   string `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                          	// ID is the CharmHub ID for this charm
                                                                                                                                                                                                                                                                                                                                                                                                          	ID   string `json:"id"`
                                                                                                                                                                                                                                                                                                                                                                                                          	Hash string `json:"hash,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                          	// Risk is the CharmHub channel risk, or the CharmStore channel value.
                                                                                                                                                                                                                                                                                                                                                                                                          	Risk string `json:"risk,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                          	// Revision is the charm revision number.
                                                                                                                                                                                                                                                                                                                                                                                                          	Revision *int    `json:"revision,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          	Track    *string `json:"track,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                          	Architecture string `json:"architecture,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          	OS           string `json:"os,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          	Series       string `json:"series,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                            CharmOrigin holds the parameters for the optional location of the source of the charm.

                                                                                                                                                                                                                                                                                                                                                                                                            type CharmOriginResult

                                                                                                                                                                                                                                                                                                                                                                                                            type CharmOriginResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                            	Origin CharmOrigin `json:"charm-origin"`
                                                                                                                                                                                                                                                                                                                                                                                                            	Error  *Error      `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                              CharmOriginResult holds the results of AddCharms calls where a CharmOrigin was used.

                                                                                                                                                                                                                                                                                                                                                                                                              type CharmPayloadClass

                                                                                                                                                                                                                                                                                                                                                                                                              type CharmPayloadClass struct {
                                                                                                                                                                                                                                                                                                                                                                                                              	Name string `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                              	Type string `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                CharmPayloadClass mirrors charm.PayloadClass.

                                                                                                                                                                                                                                                                                                                                                                                                                type CharmPlan

                                                                                                                                                                                                                                                                                                                                                                                                                type CharmPlan struct {
                                                                                                                                                                                                                                                                                                                                                                                                                	Required bool `json:"required"`
                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                  CharmPlan mirrors charm.Plan

                                                                                                                                                                                                                                                                                                                                                                                                                  type CharmProfilingInfoResult

                                                                                                                                                                                                                                                                                                                                                                                                                  type CharmProfilingInfoResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                  	InstanceId      instance.Id         `json:"instance-id"`
                                                                                                                                                                                                                                                                                                                                                                                                                  	ModelName       string              `json:"model-name"`
                                                                                                                                                                                                                                                                                                                                                                                                                  	ProfileChanges  []ProfileInfoResult `json:"profile-changes"`
                                                                                                                                                                                                                                                                                                                                                                                                                  	CurrentProfiles []string            `json:"current-profiles"`
                                                                                                                                                                                                                                                                                                                                                                                                                  	Error           *Error              `json:"error"`
                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                    CharmProfilingInfoResult contains the result based on ProfileInfoArg values to update profiles on a machine.

                                                                                                                                                                                                                                                                                                                                                                                                                    type CharmRelation

                                                                                                                                                                                                                                                                                                                                                                                                                    type CharmRelation struct {
                                                                                                                                                                                                                                                                                                                                                                                                                    	Name      string `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                    	Role      string `json:"role"`
                                                                                                                                                                                                                                                                                                                                                                                                                    	Interface string `json:"interface"`
                                                                                                                                                                                                                                                                                                                                                                                                                    	Optional  bool   `json:"optional"`
                                                                                                                                                                                                                                                                                                                                                                                                                    	Limit     int    `json:"limit"`
                                                                                                                                                                                                                                                                                                                                                                                                                    	Scope     string `json:"scope"`
                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                      CharmRelation mirrors charm.Relation.

                                                                                                                                                                                                                                                                                                                                                                                                                      func NewCharmRelation

                                                                                                                                                                                                                                                                                                                                                                                                                      func NewCharmRelation(cr charm.Relation) CharmRelation

                                                                                                                                                                                                                                                                                                                                                                                                                        NewCharmRelation creates a new local CharmRelation structure from the charm.Relation structure. NOTE: when we update the database to not store a charm.Relation directly in the database, this method should take the state structure type.

                                                                                                                                                                                                                                                                                                                                                                                                                        type CharmResource

                                                                                                                                                                                                                                                                                                                                                                                                                        type CharmResource struct {
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Name identifies the resource.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Name string `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Type is the name of the resource type.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Type string `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Path is where the resource will be stored.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Path string `json:"path"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Description contains user-facing info about the resource.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Description string `json:"description,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Origin is where the resource will come from.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Origin string `json:"origin"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Revision is the revision, if applicable.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Revision int `json:"revision"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Fingerprint is the SHA-384 checksum for the resource blob.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Fingerprint []byte `json:"fingerprint"`
                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                        	// Size is the size of the resource, in bytes.
                                                                                                                                                                                                                                                                                                                                                                                                                        	Size int64 `json:"size"`
                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                          CharmResource contains the definition for a resource.

                                                                                                                                                                                                                                                                                                                                                                                                                          type CharmResourceMeta

                                                                                                                                                                                                                                                                                                                                                                                                                          type CharmResourceMeta struct {
                                                                                                                                                                                                                                                                                                                                                                                                                          	Name        string `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                          	Type        string `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                          	Path        string `json:"path"`
                                                                                                                                                                                                                                                                                                                                                                                                                          	Description string `json:"description"`
                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                            CharmResourceMeta mirrors charm.ResourceMeta.

                                                                                                                                                                                                                                                                                                                                                                                                                            type CharmResourceResult

                                                                                                                                                                                                                                                                                                                                                                                                                            type CharmResourceResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                            	ErrorResult
                                                                                                                                                                                                                                                                                                                                                                                                                            	CharmResource
                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                              CharmResourceResult returns a charm resource result.

                                                                                                                                                                                                                                                                                                                                                                                                                              type CharmResourcesResults

                                                                                                                                                                                                                                                                                                                                                                                                                              type CharmResourcesResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                              	Results [][]CharmResourceResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                CharmResourcesResults returns a list of charm resource results.

                                                                                                                                                                                                                                                                                                                                                                                                                                type CharmStorage

                                                                                                                                                                                                                                                                                                                                                                                                                                type CharmStorage struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                	Name        string   `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	Description string   `json:"description"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	Type        string   `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	Shared      bool     `json:"shared"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	ReadOnly    bool     `json:"read-only"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	CountMin    int      `json:"count-min"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	CountMax    int      `json:"count-max"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	MinimumSize uint64   `json:"minimum-size"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	Location    string   `json:"location,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                	Properties  []string `json:"properties,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                  CharmStorage mirrors charm.Storage.

                                                                                                                                                                                                                                                                                                                                                                                                                                  type CharmURL

                                                                                                                                                                                                                                                                                                                                                                                                                                  type CharmURL struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                  	URL string `json:"url"`
                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                    CharmURL identifies a single charm URL.

                                                                                                                                                                                                                                                                                                                                                                                                                                    type CharmURLAndOrigin

                                                                                                                                                                                                                                                                                                                                                                                                                                    type CharmURLAndOrigin struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                    	CharmURL string             `json:"charm-url"`
                                                                                                                                                                                                                                                                                                                                                                                                                                    	Origin   CharmOrigin        `json:"charm-origin"`
                                                                                                                                                                                                                                                                                                                                                                                                                                    	Macaroon *macaroon.Macaroon `json:"macaroon,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                      CharmURLAndOrigin holds the information for selecting one bundle

                                                                                                                                                                                                                                                                                                                                                                                                                                      type CharmURLAndOrigins

                                                                                                                                                                                                                                                                                                                                                                                                                                      type CharmURLAndOrigins struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                      	Entities []CharmURLAndOrigin `json:"entities"`
                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                        CharmURLAndOrigins contains a slice of charm urls with a given origin.

                                                                                                                                                                                                                                                                                                                                                                                                                                        type CharmURLOriginResult

                                                                                                                                                                                                                                                                                                                                                                                                                                        type CharmURLOriginResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                        	URL    string      `json:"url"`
                                                                                                                                                                                                                                                                                                                                                                                                                                        	Origin CharmOrigin `json:"charm-origin"`
                                                                                                                                                                                                                                                                                                                                                                                                                                        	Error  *Error      `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                          CharmURLOriginResult holds the results of the charm's url and origin.

                                                                                                                                                                                                                                                                                                                                                                                                                                          type CharmURLs

                                                                                                                                                                                                                                                                                                                                                                                                                                          type CharmURLs struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                          	URLs []CharmURL `json:"urls"`
                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                            CharmURLs identifies multiple charm URLs.

                                                                                                                                                                                                                                                                                                                                                                                                                                            type CharmsList

                                                                                                                                                                                                                                                                                                                                                                                                                                            type CharmsList struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                            	Names []string `json:"names"`
                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                              CharmsList stores parameters for a charms.List call

                                                                                                                                                                                                                                                                                                                                                                                                                                              type CharmsListResult

                                                                                                                                                                                                                                                                                                                                                                                                                                              type CharmsListResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                              	CharmURLs []string `json:"charm-urls"`
                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                CharmsListResult stores result from a charms.List call

                                                                                                                                                                                                                                                                                                                                                                                                                                                type CharmsResponse

                                                                                                                                                                                                                                                                                                                                                                                                                                                type CharmsResponse struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                	Error string `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                	// ErrorCode holds the code associated with the error.
                                                                                                                                                                                                                                                                                                                                                                                                                                                	// Ideally, Error would hold an Error object and the
                                                                                                                                                                                                                                                                                                                                                                                                                                                	// code would be in that, but for backward compatibility,
                                                                                                                                                                                                                                                                                                                                                                                                                                                	// we cannot do that.
                                                                                                                                                                                                                                                                                                                                                                                                                                                	ErrorCode string `json:"error-code,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                	// ErrorInfo holds extra information associated with the error.
                                                                                                                                                                                                                                                                                                                                                                                                                                                	ErrorInfo map[string]interface{} `json:"error-info,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                	CharmURL string   `json:"charm-url,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                	Files    []string `json:"files,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                  CharmsResponse is the server response to charm upload or GET requests.

                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ClaimLeadershipBulkParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ClaimLeadershipBulkParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Params are the parameters for making a bulk leadership claim.
                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Params []ClaimLeadershipParams `json:"params"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                    ClaimLeadershipBulkParams is a collection of parameters for making a bulk leadership claim.

                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ClaimLeadershipBulkResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ClaimLeadershipBulkResults ErrorResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                      ClaimLeadershipBulkResults is the collection of results from a bulk leadership claim.

                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ClaimLeadershipParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ClaimLeadershipParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// ApplicationTag is the application for which you want to make a
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// leadership claim.
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	ApplicationTag string `json:"application-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// UnitTag is the unit which is making the leadership claim.
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	UnitTag string `json:"unit-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// DurationSeconds is the number of seconds for which the lease is required.
                                                                                                                                                                                                                                                                                                                                                                                                                                                      	DurationSeconds float64 `json:"duration"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                        ClaimLeadershipParams are the parameters needed for making a leadership claim.

                                                                                                                                                                                                                                                                                                                                                                                                                                                        type Cloud

                                                                                                                                                                                                                                                                                                                                                                                                                                                        type Cloud struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Type              string                            `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	HostCloudRegion   string                            `json:"host-cloud-region,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	AuthTypes         []string                          `json:"auth-types,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Endpoint          string                            `json:"endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	IdentityEndpoint  string                            `json:"identity-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	StorageEndpoint   string                            `json:"storage-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Regions           []CloudRegion                     `json:"regions,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	CACertificates    []string                          `json:"ca-certificates,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	SkipTLSVerify     bool                              `json:"skip-tls-verify,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Config            map[string]interface{}            `json:"config,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	RegionConfig      map[string]map[string]interface{} `json:"region-config,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        	IsControllerCloud bool                              `json:"is-controller-cloud,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                          Cloud holds information about a cloud.

                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CloudAction

                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CloudAction string

                                                                                                                                                                                                                                                                                                                                                                                                                                                            CloudAction is an action that can be performed on a cloud.

                                                                                                                                                                                                                                                                                                                                                                                                                                                            const (
                                                                                                                                                                                                                                                                                                                                                                                                                                                            	GrantCloudAccess  CloudAction = "grant"
                                                                                                                                                                                                                                                                                                                                                                                                                                                            	RevokeCloudAccess CloudAction = "revoke"
                                                                                                                                                                                                                                                                                                                                                                                                                                                            )

                                                                                                                                                                                                                                                                                                                                                                                                                                                              Actions that can be preformed on a cloud.

                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudCredential

                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudCredential struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// AuthType is the authentication type.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              	AuthType string `json:"auth-type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// Attributes contains non-secret credential values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Attributes map[string]string `json:"attrs,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// Redacted is a list of redacted attributes
                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Redacted []string `json:"redacted,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                CloudCredential contains a cloud credential possibly with secrets redacted.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CloudCredentialArg

                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CloudCredentialArg struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                	CloudName      string `json:"cloud-name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                	CredentialName string `json:"credential-name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  CloudCredentialArg defines a credential in terms of its cloud and name. It is used to request detailed content for the credential stored on the controller.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (CloudCredentialArg) IsEmpty

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (p CloudCredentialArg) IsEmpty() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    IsEmpty returns whether a cloud credential argument is empty.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CloudCredentialArgs

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CloudCredentialArgs struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Credentials    []CloudCredentialArg `json:"credentials,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	IncludeSecrets bool                 `json:"include-secrets"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      CloudCredentialArgs defines an input required to make a valid call to get credentials content stored on the controller.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CloudCredentialResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CloudCredentialResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Result *CloudCredential `json:"result,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Error  *Error           `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CloudCredentialResult contains a CloudCredential or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CloudCredentialResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CloudCredentialResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Results []CloudCredentialResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CloudCredentialResults contains a set of CloudCredentialResults.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CloudDetails

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CloudDetails struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Type             string        `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	AuthTypes        []string      `json:"auth-types,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Endpoint         string        `json:"endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	IdentityEndpoint string        `json:"identity-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	StorageEndpoint  string        `json:"storage-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Regions          []CloudRegion `json:"regions,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CloudDetails holds information about a cloud.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CloudImageMetadata

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CloudImageMetadata struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// ImageId is an image identifier.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	ImageId string `json:"image-id"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Stream contains reference to a particular stream,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// for e.g. "daily" or "released"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Stream string `json:"stream,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Region is the name of cloud region associated with the image.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Region string `json:"region"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Version is OS version, for e.g. "12.04".
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Version string `json:"version"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Series is OS series, for e.g. "trusty".
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Series string `json:"series"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Arch is the architecture for this cloud image, for e.g. "amd64"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Arch string `json:"arch"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// VirtType contains the virtualisation type of the cloud image, for e.g. "pv", "hvm". "kvm".
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	VirtType string `json:"virt-type,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// RootStorageType contains type of root storage, for e.g. "ebs", "instance".
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	RootStorageType string `json:"root-storage-type,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// RootStorageSize contains size of root storage in gigabytes (GB).
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	RootStorageSize *uint64 `json:"root-storage-size,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Source describes where this image is coming from: is it public? custom?
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Source string `json:"source"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Priority is an importance factor for image metadata.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Higher number means higher priority.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// This will allow to sort metadata by importance.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Priority int `json:"priority"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CloudImageMetadata holds cloud image metadata properties.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudImageMetadataList

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudImageMetadataList struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Metadata []CloudImageMetadata `json:"metadata,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CloudImageMetadataList holds a list of cloud image metadata.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CloudInfo

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CloudInfo struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	CloudDetails `json:",inline"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// Users contains information about the users that have access
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// to the cloud. Administrators can see all users that have access;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// other users can only see their own details.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Users []CloudUserInfo `json:"users"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  CloudInfo holds information about a cloud and user who can access it.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type CloudInfoResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type CloudInfoResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Result *CloudInfo `json:"result,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Error  *Error     `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    CloudInfoResult holds the result of a CloudInfo call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CloudInfoResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CloudInfoResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Results []CloudInfoResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      CloudInfoResults holds the result of a bulk CloudInfo call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CloudInstanceTypesConstraint

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CloudInstanceTypesConstraint struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// CloudTag is the tag of the cloud for which instances types
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// should be returned.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	CloudTag string `json:"cloud-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// CloudRegion is the name of the region for which instance
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// types should be returned.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	CloudRegion string `json:"region"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// Constraints, if specified, contains the constraints to filter
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// the instance types by. If Constraints is not specified, then
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// no filtering by constraints will take place: all instance
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// types supported by the region will be returned.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Constraints *constraints.Value `json:"constraints,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CloudInstanceTypesConstraint contains the cloud information and constraints necessary to query for instance types on a given cloud.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CloudInstanceTypesConstraints

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CloudInstanceTypesConstraints struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Constraints []CloudInstanceTypesConstraint `json:"constraints"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CloudInstanceTypesConstraints contains a slice of CloudInstanceTypesConstraint.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CloudRegion

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CloudRegion struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Name             string `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Endpoint         string `json:"endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	IdentityEndpoint string `json:"identity-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	StorageEndpoint  string `json:"storage-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CloudRegion holds information about a cloud region.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CloudResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CloudResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Cloud *Cloud `json:"cloud,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Error *Error `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CloudResult contains a cloud definition or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Results []CloudResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CloudResults contains a set of CloudResults.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CloudSpec

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CloudSpec struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Type              string           `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Name              string           `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Region            string           `json:"region,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Endpoint          string           `json:"endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	IdentityEndpoint  string           `json:"identity-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	StorageEndpoint   string           `json:"storage-endpoint,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Credential        *CloudCredential `json:"credential,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	CACertificates    []string         `json:"cacertificates,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	SkipTLSVerify     bool             `json:"skip-tls-verify,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	IsControllerCloud bool             `json:"is-controller-cloud,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  CloudSpec holds a cloud specification.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type CloudSpecResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type CloudSpecResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Result *CloudSpec `json:"result,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Error  *Error     `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    CloudSpecResult contains a CloudSpec or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CloudSpecResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CloudSpecResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Results []CloudSpecResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      CloudSpecResults contains a set of CloudSpecResults.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CloudUserInfo

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CloudUserInfo struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	UserName    string `json:"user"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	DisplayName string `json:"display-name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Access      string `json:"access"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CloudUserInfo holds information on a user who has access to a cloud. Cloud admins can see this information for all users who have access, so it should not include sensitive information.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CloudsResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CloudsResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Clouds is a map of clouds, keyed by cloud tag.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Clouds map[string]Cloud `json:"clouds,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CloudsResult contains a set of Clouds.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CommitHookChangesArg

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CommitHookChangesArg struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Tag string `json:"tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	UpdateNetworkInfo    bool                   `json:"update-network-info"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	RelationUnitSettings []RelationUnitSettings `json:"relation-unit-settings,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	OpenPorts            []EntityPortRange      `json:"open-ports,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	ClosePorts           []EntityPortRange      `json:"close-ports,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	SetUnitState         *SetUnitStateArg       `json:"unit-state,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	AddStorage           []StorageAddParams     `json:"add-storage,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	SetPodSpec           *PodSpec               `json:"pod-spec,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	SetRawK8sSpec        *PodSpec               `json:"set-raw-k8s-spec,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CommitHookChangesArg holds a unit tag and a list of optional uniter API call payloads that are to be executed transactionally.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CommitHookChangesArgs

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CommitHookChangesArgs struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Args []CommitHookChangesArg `json:"args"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CommitHookChangesArgs serves as a container for CommitHookChangesArg objects to be processed by the controller.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ConfigResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ConfigResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Config map[string]interface{} `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Error  *Error                 `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ConfigResults holds configuration values for an entity.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ConfigSet

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ConfigSet struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ApplicationName string `json:"application"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// Generation is the generation version that this request
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// will set application configuration for.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Generation string `json:"generation"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Config     map[string]string `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ConfigYAML string            `json:"config-yaml"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ConfigSet holds the parameters for an application and charm config set command.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ConfigSetArgs

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ConfigSetArgs struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Args []ConfigSet
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ConfigSetArgs holds the parameters for setting application and charm config values for specified applications.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ConfigSettings

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ConfigSettings map[string]interface{}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ConfigSettings holds unit, application or cham configuration settings with string keys and arbitrary values.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ConfigSettingsResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ConfigSettingsResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Error    *Error         `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Settings ConfigSettings `json:"settings"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ConfigSettingsResult holds a configuration map or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ConfigSettingsResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ConfigSettingsResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Results []ConfigSettingsResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ConfigSettingsResults holds multiple configuration maps or errors.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ConfigValue

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ConfigValue struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Value  interface{} `json:"value"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Source string      `json:"source"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ConfigValue encapsulates a configuration value and its source.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ConstraintsResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ConstraintsResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Error       *Error            `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Constraints constraints.Value `json:"constraints"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ConstraintsResult holds machine constraints or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ConstraintsResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ConstraintsResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Results []ConstraintsResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ConstraintsResults holds multiple constraints results.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ConsumeApplicationArg

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ConsumeApplicationArg struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// The offer to be consumed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ApplicationOfferDetails
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// Macaroon is used for authentication.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Macaroon *macaroon.Macaroon `json:"macaroon,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// ControllerInfo contains connection details to the controller
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// hosting the offer.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ControllerInfo *ExternalControllerInfo `json:"external-controller,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// ApplicationAlias is the name of the alias to use for the application name.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ApplicationAlias string `json:"application-alias,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ConsumeApplicationArg holds the arguments for consuming a remote application.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ConsumeApplicationArgs

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ConsumeApplicationArgs struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Args []ConsumeApplicationArg `json:"args,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ConsumeApplicationArgs is a collection of arg for consuming applications.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ConsumeOfferDetails

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ConsumeOfferDetails struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Offer          *ApplicationOfferDetails `json:"offer,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Macaroon       *macaroon.Macaroon       `json:"macaroon,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	ControllerInfo *ExternalControllerInfo  `json:"external-controller,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ConsumeOfferDetails contains the details necessary to consume an application offer.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ConsumeOfferDetailsArg

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ConsumeOfferDetailsArg struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	OfferURLs OfferURLs `json:"offer-urls"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	UserTag   string    `json:"user-tag,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ConsumeOfferDetailsArg holds arguments for querying the details used for consuming offers.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ConsumeOfferDetailsResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ConsumeOfferDetailsResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ConsumeOfferDetails
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Error *Error `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ConsumeOfferDetailsResult contains the details necessary to consume an application offer or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ConsumeOfferDetailsResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ConsumeOfferDetailsResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Results []ConsumeOfferDetailsResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ConsumeOfferDetailsResults represents the result of a ConsumeOfferDetails call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ContainerConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ContainerConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	ProviderType               string                 `json:"provider-type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	AuthorizedKeys             string                 `json:"authorized-keys"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SSLHostnameVerification    bool                   `json:"ssl-hostname-verification"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	LegacyProxy                proxy.Settings         `json:"legacy-proxy"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	JujuProxy                  proxy.Settings         `json:"juju-proxy"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	AptProxy                   proxy.Settings         `json:"apt-proxy"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SnapProxy                  proxy.Settings         `json:"snap-proxy"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SnapStoreAssertions        string                 `json:"snap-store-assertions"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SnapStoreProxyID           string                 `json:"snap-store-proxy-id"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SnapStoreProxyURL          string                 `json:"snap-store-proxy-url"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	AptMirror                  string                 `json:"apt-mirror"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	CloudInitUserData          map[string]interface{} `json:"cloudinit-userdata,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	ContainerInheritProperties string                 `json:"container-inherit-properties,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	*UpdateBehavior
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ContainerConfig contains information from the model config that is needed for container cloud-init.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ContainerLXDProfile

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ContainerLXDProfile struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Profile CharmLXDProfile `json:"profile" yaml:"profile"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Name    string          `json:"name" yaml:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ContainerLXDProfile contains the charm.LXDProfile information in addition to the name of the profile.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ContainerManagerConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ContainerManagerConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ManagerConfig map[string]string `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ContainerManagerConfig contains information from the model config that is needed for configuring the container manager.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ContainerManagerConfigParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ContainerManagerConfigParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Type instance.ContainerType `json:"type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ContainerManagerConfigParams contains the parameters for the ContainerManagerConfig provisioner API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ContainerProfileResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ContainerProfileResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Error       *Error                 `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	LXDProfiles []*ContainerLXDProfile `json:"lxd-profiles,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ContainerProfileResult returns the result of finding the CharmLXDProfile and name of the lxd profile to be used for 1 unit on the container

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ContainerProfileResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ContainerProfileResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Results []ContainerProfileResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ContainerProfileResults returns the ContainerProfileResult for each unit to be placed on the container.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ContainerTypeResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ContainerTypeResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Type  instance.ContainerType `json:"container-type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Error *Error                 `json:"error"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ContainerTypeResult holds the result of a machine's ContainerType.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ControllerAPIInfoResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ControllerAPIInfoResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Addresses []string `json:"addresses"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	CACert    string   `json:"cacert"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Error     *Error   `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ControllerAPIInfoResult holds controller api address details.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ControllerAPIInfoResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ControllerAPIInfoResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Results []ControllerAPIInfoResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ControllerAPIInfoResults holds controller api address details results.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ControllerAction

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ControllerAction string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ControllerAction is an action that can be performed on a model.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                const (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	GrantControllerAccess  ControllerAction = "grant"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	RevokeControllerAccess ControllerAction = "revoke"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                )

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Actions that can be preformed on a model.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ControllerConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ControllerConfig map[string]interface{}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ControllerConfig holds a controller configuration.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ControllerConfigResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ControllerConfigResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Config ControllerConfig `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ControllerConfigResult holds controller configuration.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ControllerConfigSet

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ControllerConfigSet struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Config map[string]interface{} `json:"config"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ControllerConfigSet holds new config values for Controller.ConfigSet.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ControllerCredentialInfo

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ControllerCredentialInfo struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Content has comprehensive credential content.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Content CredentialContent `json:"content,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Models contains models that are using ths credential.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Models []ModelAccess `json:"models,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ControllerCredentialInfo contains everything Juju stores on the controller about the credential - its contents as well as what models use it and what access currently logged in user, a credential owner, has to these models.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ControllerVersionResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ControllerVersionResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Version   string `json:"version"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	GitCommit string `json:"git-commit"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ControllerVersionResults holds the results from an api call to get the controller's version information.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ControllersChangeResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ControllersChangeResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Result ControllersChanges `json:"result"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Error  *Error             `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ControllersChangeResult contains the results of a single EnableHA API call or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ControllersChangeResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ControllersChangeResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Results []ControllersChangeResult `json:"results"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ControllersChangeResults contains the results of the EnableHA API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ControllersChanges

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ControllersChanges struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Added      []string `json:"added,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Maintained []string `json:"maintained,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Removed    []string `json:"removed,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Converted  []string `json:"converted,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ControllersChanges lists the servers that have been added, removed or maintained in the pool as a result of an enable-ha operation.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ControllersSpec

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ControllersSpec struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	NumControllers int               `json:"num-controllers"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Constraints    constraints.Value `json:"constraints,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Series is the series to associate with new controller machines.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// If this is empty, then the model's default series is used.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Series string `json:"series,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Placement defines specific machines to become new controller machines.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Placement []string `json:"placement,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ControllersServersSpec contains arguments for the EnableHA client API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ControllersSpecs

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ControllersSpecs struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Specs []ControllersSpec `json:"specs"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ControllersServersSpecs contains all the arguments for the EnableHA API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CountedEntity

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CountedEntity string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CountedEntity identifies an entity that has a count.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        const (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Machines CountedEntity = "machines"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Cores    CountedEntity = "cores"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Units    CountedEntity = "units"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        )

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CreateSpaceParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CreateSpaceParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	CIDRs      []string `json:"cidrs"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	SpaceTag   string   `json:"space-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Public     bool     `json:"public"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ProviderId string   `json:"provider-id,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CreateSpaceParams holds the space tag and at least one subnet tag required to create a new space.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CreateSpaceParamsV4

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CreateSpaceParamsV4 struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	SubnetTags []string `json:"subnet-tags"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	SpaceTag   string   `json:"space-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Public     bool     `json:"public"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	ProviderId string   `json:"provider-id,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CreateSpaceParams holds the space tag and at least one subnet tag required to create a new space.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CreateSpacesParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CreateSpacesParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Spaces []CreateSpaceParams `json:"spaces"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CreateSpacesParams holds the arguments of the AddSpaces API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CreateSpacesParamsV4

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CreateSpacesParamsV4 struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Spaces []CreateSpaceParamsV4 `json:"spaces"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CreateSpacesParams holds the arguments of the AddSpaces API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CreateSubnetParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type CreateSubnetParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	SubnetTag string   `json:"subnet-tag,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	SpaceTag  string   `json:"space-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Zones     []string `json:"zones,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	VLANTag   int      `json:"vlan-tag,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	IsPublic  bool     `json:"is-public"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  CreateSubnetParams holds a subnet and space tags, vlan tag, and a list of zones to associate the subnet to.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type CreateSubnetsParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type CreateSubnetsParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Subnets []CreateSubnetParams `json:"subnets"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    CreateSubnetsParams holds the arguments of CreateSubnets API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CredentialContent

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type CredentialContent struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// Name is the short name of the credential.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Name string `json:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// Cloud is the cloud name to which this credential belongs.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Cloud string `json:"cloud"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// AuthType is the authentication type.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	AuthType string `json:"auth-type"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// Valid indicates whether credential is valid.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Valid *bool `json:"valid,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// Attributes contains credential values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Attributes map[string]string `json:"attrs,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      CredentialContent contains a cloud credential content.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CredentialContentResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type CredentialContentResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Result *ControllerCredentialInfo `json:"result,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Error  *Error                    `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CredentialContentResult contains comprehensive information about stored credential or an error.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CredentialContentResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type CredentialContentResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Results []CredentialContentResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CredentialContentResults contains a set of CredentialContentResults.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type Creds

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type Creds struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	AuthTag  string `json:"auth-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Password string `json:"password"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Nonce    string `json:"nonce"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Creds holds credentials for identifying an entity.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type DashboardArchiveResponse

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type DashboardArchiveResponse struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Versions []DashboardArchiveVersion `json:"versions"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              DashboardArchiveResponse holds the response to /dashboard-archive GET requests.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type DashboardArchiveVersion

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type DashboardArchiveVersion struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// Version holds the Juju Dashboard version number.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Version version.Number `json:"version"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// SHA256 holds the SHA256 hash of the Dashboard tar.bz2 archive.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	SHA256 string `json:"sha256"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// Current holds whether this specific version is the current one served
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// by the controller.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Current bool `json:"current"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                DashboardArchiveVersion holds information on a specific Dashboard archive version.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type DashboardVersionRequest

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type DashboardVersionRequest struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// Version holds the Juju Dashboard version number.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Version version.Number `json:"version"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  DashboardVersionRequest holds the body for /dashboard-version PUT requests.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Delta

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Delta struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// If Removed is true, the entity has been removed;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// otherwise it has been created or changed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Removed bool `json:"removed"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Entity holds data about the entity that has changed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Entity EntityInfo `json:"entity"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Delta holds details of a change to the model.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*Delta) MarshalJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (d *Delta) MarshalJSON() ([]byte, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      MarshalJSON implements json.Marshaler.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*Delta) UnmarshalJSON

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        UnmarshalJSON implements json.Unmarshaler.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type DeployerConnectionValues

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type DeployerConnectionValues struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	APIAddresses []string `json:"api-addresses"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          DeployerConnectionValues containers the result of deployer.ConnectionInfo API call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type DestroyApplicationInfo

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type DestroyApplicationInfo struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// DetachedStorage is the tags of storage instances that will be
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// detached from the application's units, and will remain in the
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// model after the units are removed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	DetachedStorage []Entity `json:"detached-storage,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// DestroyedStorage is the tags of storage instances that will be
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// destroyed as a result of destroying the application.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	DestroyedStorage []Entity `json:"destroyed-storage,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// DestroyedUnits is the tags of units that will be destroyed
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	// as a result of destroying the application.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	DestroyedUnits []Entity `json:"destroyed-units,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            DestroyApplicationInfo contains information related to the removal of an application.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type DestroyApplicationOffers

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type DestroyApplicationOffers struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	OfferURLs []string `json:"offer-urls"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Force     bool     `json:"force,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              DestroyApplicationOffers holds parameters for the DestroyOffers call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type DestroyApplicationParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type DestroyApplicationParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// ApplicationTag holds the tag of the application to destroy.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ApplicationTag string `json:"application-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// DestroyStorage controls whether or not storage attached to
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// units of the application should be destroyed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	DestroyStorage bool `json:"destroy-storage,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// Force controls whether or not the destruction of an application
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// will be forced, i.e. ignore operational errors.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Force bool `json:"force"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// MaxWait specifies the amount of time that each step in application removal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// will wait before forcing the next step to kick-off. This parameter
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// only makes sense in combination with 'force' set to 'true'.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MaxWait *time.Duration `json:"max-wait,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                DestroyApplicationParams holds parameters for the Application.DestroyApplication call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type DestroyApplicationResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type DestroyApplicationResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Error *Error                  `json:"error,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Info  *DestroyApplicationInfo `json:"info,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  DestroyApplicationResult contains one of the results of a DestroyApplication API request.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type DestroyApplicationResults

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type DestroyApplicationResults struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Results []DestroyApplicationResult `json:"results,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    DestroyApplicationResults contains the results of a DestroyApplication API request.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type DestroyApplicationUnits

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type DestroyApplicationUnits struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	UnitNames []string `json:"unit-names"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      DestroyApplicationUnits holds parameters for the deprecated Application.DestroyUnits call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type DestroyApplicationsParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type DestroyApplicationsParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Applications []DestroyApplicationParams `json:"applications"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        DestroyApplicationsParams holds bulk parameters for the Application.DestroyApplication call.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type DestroyConsumedApplicationParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type DestroyConsumedApplicationParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ApplicationTag string `json:"application-tag"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Force controls whether or not the destruction process ignores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// operational errors. When true, the process will ignore them.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Force *bool `json:"force,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// MaxWait specifies the amount of time that each step in application removal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// will wait before forcing the next step to kick-off. This parameter
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// only makes sense in combination with 'force' set to 'true'.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	MaxWait *time.Duration `json:"max-wait,omitempty"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          DestroyConsumedApplicationParams holds the parameters for the RemoteApplication.Destroy call.