github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/controller/metricsmanager/register.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package metricsmanager 5 6 import ( 7 "reflect" 8 9 "github.com/juju/clock" 10 11 "github.com/juju/juju/apiserver/facade" 12 ) 13 14 // Register is called to expose a package of facades onto a given registry. 15 func Register(registry facade.FacadeRegistry) { 16 registry.MustRegister("MetricsManager", 1, func(ctx facade.Context) (facade.Facade, error) { 17 return newFacade(ctx) 18 }, reflect.TypeOf((*MetricsManagerAPI)(nil))) 19 } 20 21 // newFacade wraps NewMetricsManagerAPI for API registration. 22 func newFacade(ctx facade.Context) (*MetricsManagerAPI, error) { 23 return NewMetricsManagerAPI( 24 ctx.State(), 25 ctx.Resources(), 26 ctx.Auth(), 27 ctx.StatePool(), 28 clock.WallClock, 29 ) 30 }