github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/caasunitprovisioner/broker.go (about)

     1  // Copyright 2017 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package caasunitprovisioner
     5  
     6  import (
     7  	"github.com/juju/names/v5"
     8  
     9  	"github.com/juju/juju/caas"
    10  	"github.com/juju/juju/core/config"
    11  	"github.com/juju/juju/core/watcher"
    12  )
    13  
    14  type ContainerBroker interface {
    15  	Provider() caas.ContainerEnvironProvider
    16  	WatchOperator(string) (watcher.NotifyWatcher, error)
    17  	Operator(string) (*caas.Operator, error)
    18  
    19  	WatchUnits(appName string, mode caas.DeploymentMode) (watcher.NotifyWatcher, error)
    20  	Units(appName string, mode caas.DeploymentMode) ([]caas.Unit, error)
    21  	AnnotateUnit(appName string, mode caas.DeploymentMode, podName string, unit names.UnitTag) error
    22  }
    23  
    24  type ServiceBroker interface {
    25  	Provider() caas.ContainerEnvironProvider
    26  	EnsureService(appName string, statusCallback caas.StatusCallbackFunc, params *caas.ServiceParams, numUnits int, config config.ConfigAttributes) error
    27  	DeleteService(appName string) error
    28  	UnexposeService(appName string) error
    29  
    30  	GetService(appName string, mode caas.DeploymentMode, includeClusterIP bool) (*caas.Service, error)
    31  	WatchService(appName string, mode caas.DeploymentMode) (watcher.NotifyWatcher, error)
    32  }