github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/controller/migrationmaster/backend.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package migrationmaster
     5  
     6  import (
     7  	"github.com/juju/names/v5"
     8  	"github.com/juju/version/v2"
     9  
    10  	"github.com/juju/juju/controller"
    11  	"github.com/juju/juju/core/network"
    12  	"github.com/juju/juju/migration"
    13  	"github.com/juju/juju/state"
    14  )
    15  
    16  // Backend defines the state functionality required by the
    17  // migrationmaster facade.
    18  type Backend interface {
    19  	migration.StateExporter
    20  
    21  	WatchForMigration() state.NotifyWatcher
    22  	LatestMigration() (state.ModelMigration, error)
    23  	ModelUUID() string
    24  	ModelName() (string, error)
    25  	ModelOwner() (names.UserTag, error)
    26  	AgentVersion() (version.Number, error)
    27  	RemoveExportingModelDocs() error
    28  	ControllerConfig() (controller.Config, error)
    29  	AllLocalRelatedModels() ([]string, error)
    30  }
    31  
    32  // ControllerState defines the state functionality for controller model.
    33  type ControllerState interface {
    34  	APIHostPortsForClients() ([]network.SpaceHostPorts, error)
    35  }